Проблема AWS DynamoDB с PutItem. Каков правильный формат JSON?

У меня возникают проблемы с отправкой запросов PutItem в DynamoDB. Я понимаю, что на аналогичный вопрос был дан ответ здесь, но кажется У меня здесь нет пустых значений.

Мой JSON:

{
    "TableName":"Unity",
    "Item":{
        "id":{
            "S":"73709359-ac78-46a0-8ca6-414393e33339"
        },
        "Session":{
            "S":"b6ba8b6d-ce27-4585-aee5-b9a2393e54da"
        },
        "Pos":{
            "X":{
                "S":"-16.8"
            },
            "Y":{
                "S":"-4.492812"
            }
        },
        "Time":{
            "S":"7/27/2017 3:21:25 PM"
        }
    }
}

И ошибка ValidationException:

Supplied AttributeValue is empty, must contain exactly one of the supported datatypes

Кто-нибудь знает, что происходит?


person JeffreyHC    schedule 27.07.2017    source источник


Ответы (1)


Пожалуйста, попробуйте приведенный ниже код. Я добавил тип данных Map для атрибута Pos.

var dynamoDB = new AWS.DynamoDB;

var params = {
    TableName: "Unity",
    Item: {
        "id": {
            S: "73709359-ac78-46a0-8ca6-414393e33339"
        },
        "Session": {
            S: "b6ba8b6d-ce27-4585-aee5-b9a2393e54da"
        },
        "Pos": {
            M: {
                "X": {
                    S: "-16.8"
                },
                "Y": {
                    S: "-4.492812"
                }
            }
        },
        "Time": {
            S: "7/27/2017 3:21:25 PM"
        }
    }
};

console.log("Adding a new item...");
dynamoDB.putItem(params, function (err, data) {
    if (err) {
        console.error("Unable to add item. Error JSON:", JSON.stringify(err,
            null, 2));
    } else {
        console.log("Added item:", JSON.stringify(data, null, 2));
    }
});
person notionquest    schedule 27.07.2017