これは目標を達成するはずです。私の謝罪、私は私の元の投稿であなたの基準を逃した。私はid
があなたのテーブルの鍵だと仮定しています。
'use strict';
var AWS = require('aws-sdk');
var ec2 = new AWS.EC2({ apiVersion: '2016-09-15' });
var ddb = new AWS.DynamoDB.DocumentClient();
AWS.config.region = 'us-east-1';
var ret = {};
const ddbTbl = 'table_name';
var date = new Date();
var dateAsIso = date.toISOString();
exports.handler = (event, context, callback) => {
var key = 'bar';
var params = {
TableName: ddbTbl,
Key: {
"id": key
},
UpdateExpression: "set #u = :t, #c = if_not_exists(#c, :t)",
ExpressionAttributeNames: {
"#u": "updated_at",
"#c": "created_at"
},
ExpressionAttributeValues: {
":t": dateAsIso
},
ReturnValues: "UPDATED_NEW"
};
ddb.update(params, function(err, data) {
if (err) {
console.log(err, err.stack);
ret.ddbUpdate = err;
callback(null, {success: false, message: ["ddb upsert failed"], payload: ret});
// or use the regular callback for failures if you don't want to do your own envelope response
} else {
console.log(data);
ret.ddbUpdate = data;
callback(null, {success: true, message: ["ddb upsert succeeded"], payload: ret});
}
});
};
レコードの作成時にcreated_atフィールドを設定し、レコードがすでに存在する場合はupdated_atフィールドのみを設定しますか? – robertjewell