使用 Appsync 更新 dynamodb 项目
Update-ing dynamodb item using Appsync
在 AppSync 中,我想像这样使用数组或字符串集更新项目:
mutation addmeta{
addMetaDataOnPhoto(id:"xyz", metadata:["word1", "word2",...]){
metadata
}
}
这是我的变异类型的样子:
type Mutatation{
addMetaDataOnPhoto(id: String!, metadata: [String]!): Photo
}
我的问题是应该如何查看此突变的解析器。
谢谢! :)
为了在不替换整个项目的情况下更新属性,您应该使用 UpdateItem
DynamoDB operation。
在您的示例中,如果您想替换 metadata
数组,您的请求映射模板应如下所示:
{
"version" : "2017-02-28",
"operation" : "UpdateItem",
"key" : {
"id" : { "S" : "${context.arguments.id}" }
},
"update" : {
"expression" : "SET metadata = :vals",
"expressionValues": {
":vals" : $util.dynamodb.toDynamoDBJson($ctx.args.metadata)
}
}
}
注意: $util.dynamodb.toDynamoDBJson
会将您的数组转换为 DynamoDB typedValue。有关更多信息和实用程序,请参阅 AWS AppSync util reference。
在 AppSync 中,我想像这样使用数组或字符串集更新项目:
mutation addmeta{
addMetaDataOnPhoto(id:"xyz", metadata:["word1", "word2",...]){
metadata
}
}
这是我的变异类型的样子:
type Mutatation{
addMetaDataOnPhoto(id: String!, metadata: [String]!): Photo
}
我的问题是应该如何查看此突变的解析器。 谢谢! :)
为了在不替换整个项目的情况下更新属性,您应该使用 UpdateItem
DynamoDB operation。
在您的示例中,如果您想替换 metadata
数组,您的请求映射模板应如下所示:
{
"version" : "2017-02-28",
"operation" : "UpdateItem",
"key" : {
"id" : { "S" : "${context.arguments.id}" }
},
"update" : {
"expression" : "SET metadata = :vals",
"expressionValues": {
":vals" : $util.dynamodb.toDynamoDBJson($ctx.args.metadata)
}
}
}
注意: $util.dynamodb.toDynamoDBJson
会将您的数组转换为 DynamoDB typedValue。有关更多信息和实用程序,请参阅 AWS AppSync util reference。