我正在开发 AppSync,我正在努力研究如何使用 VTL 在 Dynamo Db 中保存日期。我的实际要求是保存调用 API 的日期。请让我知道如何在 Dynamo Db 中使用 Date.now() 来实现这一点。提前致谢。
2 回答
0
我通常使用$util.time.nowEpochSeconds()
例如:
#set($input={})
$util.qr($input.put("createdAt", $util.time.nowEpochSeconds()))
$util.qr($input.put("updatedAt", $util.time.nowEpochSeconds()))
#set($id=$util.autoId())
{
"version" : "2017-02-28",
"operation" : "PutItem",
"key" : {
"id": $util.dynamodb.toDynamoDBJson("$id")
},
"attributeValues" : $util.dynamodb.toMapValuesJson($input)
}
于 2019-10-09T21:18:12.013 回答
0
您有几个选项,例如使用 DynamoDb,您可以在映射之前添加属性:
$util.qr($ctx.args.input.put("createdAt", $util.time.nowISO8601()))
{
"version": "2017-02-28",
"operation": "PutItem",
"key": {
"id": $util.dynamodb.toDynamoDBJson($util.autoId()),
},
"attributeValues": $util.dynamodb.toMapValuesJson($ctx.args.input),
"condition": {
"expression": "attribute_not_exists(#id)",
"expressionNames": {
"#id": "id",
},
},
}
格式选项:
$util.time.nowISO8601() : 2018-02-06T19:01:35.749Z
$util.time.nowEpochSeconds() : 1517943695
$util.time.nowEpochMilliSeconds() : 1517943695750
$util.time.nowFormatted("yyyy-MM-dd HH:mm:ssZ") : 2018-02-06 19:01:35+0000
$util.time.nowFormatted("yyyy-MM-dd HH:mm:ssZ", "+08:00") : 2018-02-07 03:01:35+0800
$util.time.nowFormatted("yyyy-MM-dd HH:mm:ssZ", "Australia/Perth") : 2018-02-07 03:01:35+0800
来源:https ://docs.aws.amazon.com/appsync/latest/devguide/resolver-util-reference.html
于 2021-12-28T22:52:14.467 回答