1

我正在運行一個lambda函數(NodeJS)以將一些文檔上傳到AWS Cloud Search。我不斷收到以下錯誤。AWS CloudSearch上傳JSON:值標記不能是陣列或對象

{ 
    "errorMessage": "{ [\"The value of tags cannot be a JSON array or object\"] }", 
    "errorType": "DocumentServiceException", 
    "stackTrace": [ 
     "Object.extractError (/var/task/node_modules/aws-sdk/lib/protocol/json.js:48:27)", 
     "Request.extractError (/var/task/node_modules/aws-sdk/lib/protocol/rest_json.js:37:8)", 
     "Request.callListeners (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:105:20)", 
     "Request.emit (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:77:10)", 
     "Request.emit (/var/task/node_modules/aws-sdk/lib/request.js:678:14)", 
     "Request.transition (/var/task/node_modules/aws-sdk/lib/request.js:22:10)", 
     "AcceptorStateMachine.runTo (/var/task/node_modules/aws-sdk/lib/state_machine.js:14:12)", 
     "/var/task/node_modules/aws-sdk/lib/state_machine.js:26:10", 
     "Request.<anonymous> (/var/task/node_modules/aws-sdk/lib/request.js:38:9)", 
     "Request.<anonymous> (/var/task/node_modules/aws-sdk/lib/request.js:680:12)" 
    ] 
} 

我遵循的

var item = { 
    type: 'add', 
    id: key, 
    fields: { 
     userid: value.userId, 
     storyid: value.storyId, 
     description: value.description, 
     title: value.title, 
     type: 'xyz' 
    } 
} 

文件格式這是我使用的上傳數據的代碼

exports.handle = function(e, ctx, cb) { 
    ctx.callbackWaitsForEmptyEventLoop = false; 
    var documentsBatch = e.data; 
    var params = { 
    contentType: 'application/json', 
    documents: JSON.stringify(documentsBatch) 
    }; 
    var req = cloudsearchdomain.uploadDocuments(params, function(err, data) { 
    if (err){ 
     // an error occurred 
     cb(err, null); 
    }else{ 
     // successful response 
    } 
    }); 
    req.send(); 
} 

我登錄時字符串化的數據看起來類似

東西
[ 
    { 
    "type": "add", 
    "id": "FpgAxxxxKrM4utxosPy23--KhO6FgvxK", 
    "fields": { 
     "userid": "FpgARscKlxaxutxosPy23", 
     "storyid": "-KhxbPpRP7REEK", 
     "description": "xyz ", 
     "title": "umm", 
     "type": "story" 
    } 
    }, 
    { 
    "type": "add", 
    "id": "FccccxosPy23--KiYbrrPjtJVk2bghO-W", 
    "fields": { 
     "userid": "FpgARfPy23", 
     "storyid": "-KiYbrfggO-W", 
     "description": "noo", 
     "title": "lalaa out", 
     "type": "story" 
    } 
    } 
] 

有人能指出我正確的方向嗎?

回答

0

問題出在另一個JSON對象,它具有字段以外的其他JSON屬性。一旦我能夠找到並刪除它的一切工作。應該有一個相同的lint-er,否則SDK應該拋出一個更好的例外。