使用 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