2017-05-01 40 views

回答

1

這應該達到你的目標。我的歉意,因爲我在原始發佈中錯過了你的標準。我假設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}); 
     } 
    }); 
}; 
+0

如何在創建記錄時設置created_at字段,並在記錄已存在時只設置updated_at字段? – robertjewell

相關問題