我在创建帖子时尝试自动添加时间戳。 但它并不适用于appsync resolver-context-reference的例子。
{
"version" : "2017-02-28",
"operation" : "PutItem",
"key": {
"id" : $util.dynamodb.toDynamoDBJson($util.autoId())
},
#set( $myfoo = $util.dynamodb.toMapValues($ctx.args) )
#set( $myFoo.version = $util.dynamodb.toNumber(1) )
#set( $myFoo.timestamp = $util.time.nowISO8601() )
"attributeValues" : $util.toJson($myFoo)
}
答案 0 :(得分:4)
这是您要查看的内容的一个有效示例(取自我的AppSync API解析程序)。注意" messageId"和" createdDate"属性。这就是如何在写入DDB时添加日期。
$$ se(P_i) = P_i \sqrt{\sum^i_{j=1} ( \frac{q_j}{r_j p_j})} $$
答案 1 :(得分:3)
将解析器更改为以下
{
"version" : "2017-02-28",
"operation" : "PutItem",
"key": {
"id" : $util.dynamodb.toDynamoDBJson($util.autoId())
},
#set( $myfoo = $util.dynamodb.toMapValues($ctx.args) )
#set( $myFoo.version = $util.dynamodb.toNumber(1) )
#set( $myFoo.timestamp = $util.dynamodb.toDynamoDB($util.time.nowISO8601()) )
"attributeValues" : $util.toJson($myFoo)
}
请注意更改将$util.time.nowISO8601()
与$util.dynamodb.toDynamoDB()
答案 2 :(得分:1)
对于dynamoDB,String
应通过$util
更改为dynamodb类型。因此,将时间字符串更改为dynamoDB类型后,它将起作用。
#set( $myFoo.timestamp = $util.time.nowISO8601() )
=>
#set( $myFoo.timestamp = $util.dynamodb.toDynamoDB($util.time.nowISO8601())