J'essaie de configurer une petite API depuis AWS Lambda vers DynamoDB et j'ai du mal à déterminer si et comment je peux écrire un tableau d'objets dans une clé.
J'ai un objet comme
{
"teamName": "Team Awesome",
"members": [
{
"email": "[email protected]",
"name": "Bob"
},
{
"email": "[email protected]",
"name": "Alice"
}
]
}
Le tableau des membres me donne des problèmes, dans les documents, il semble que cela puisse être fait en tenant compte des types de liste, mais il n'y a tout simplement aucun exemple comment COMMENT le faire, et je suis à court de moyens pour l'essayer.
Est-il donc possible d'écrire quelque chose dans ce format et comment le faites-vous dans ce cas?
Exemple de code - que dois-je mettre ???
var AWS = require('aws-sdk');
var dynamodb = new AWS.DynamoDB();
exports.handler = function(event, context) {
var tableName = "GDCCompetition";
var datetime = new Date().getTime().toString();
DynamoDB.putItem({
"TableName": tableName,
"Item": {
"datetime": {
"N": datetime
},
"teamName": {
"S": event.teamName
},
"members": ???
}
});
}
La documentation n'est pas vraiment évidente, mais il y a une chose appelée DocClient
, vous pouvez lui passer un objet JS habituel et il fera toute l'analyse et la transformation en objet AWS (avec tous les types). Vous pouvez l'utiliser comme ceci:
var AWS = require("aws-sdk");
var DynamoDB = new AWS.DynamoDB.DocumentClient();
var params = {
TableName: "MyTable",
Item: {
"teamName": "Team Awesome",
"members": [
{
"email": "[email protected]",
"name": "Bob"
},
{
"email": "[email protected]",
"name": "Alice"
}
]
}
};
DynamoDB.put(params, function (err) {
if (err) {
return throw err;
}
//this is put
});