Amazon web services 使用Appsync更新dynamodb项

Amazon web services 使用Appsync更新dynamodb项,amazon-web-services,graphql,aws-appsync,Amazon Web Services,Graphql,Aws Appsync,在AppSync中,我想用数组或字符串集更新项,如下所示: mutation addmeta{ addMetaDataOnPhoto(id:"xyz", metadata:["word1", "word2",...]){ metadata } } 我的突变类型是这样的: type Mutatation{ addMetaDataOnPhoto(id: String!, metadata: [String]!): Photo } 我的问题是如何寻找这种突变的解决方案。 谢

在AppSync中,我想用数组或字符串集更新项,如下所示:

mutation addmeta{
  addMetaDataOnPhoto(id:"xyz", metadata:["word1", "word2",...]){
    metadata
  }
}
我的突变类型是这样的:

type Mutatation{
    addMetaDataOnPhoto(id: String!, metadata: [String]!): Photo
}
我的问题是如何寻找这种突变的解决方案。
谢谢!:)

要更新属性而不替换整个项目,应使用

在您的示例中,如果要替换
元数据
数组,您的请求映射模板应该如下所示:

{
    "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类型值。有关更多信息和实用程序,请参阅

要更新属性而不替换整个项目,应使用

在您的示例中,如果要替换
元数据
数组,您的请求映射模板应该如下所示:

{
    "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类型值。有关更多信息和实用程序,请参阅

嘿,谢谢,但我不确定这是我需要的,也许我的问题不是很好,我在这方面还是新手。所以,我需要用元素更新dynamodb表中的一列,这些元素通过stringset格式或任何colaction格式的mutatuion参数传递。我找到了一个很好的示例(示例2),但im在#metadata=:metadata附近仍然有一个invalidUpdateExpreeson语法错误。我找不到我的错误在哪里。Thanks@Tinou,我复制了你的代码,它只是返回一个空值,没有更新。是否有办法获取日志文件或更多信息。@tkerwood您可以通过控制台(例如“设置”页上的控制台)在AppSync API上启用对CloudWatch的日志记录。嘿,谢谢,但我不确定这是我需要的,也许我的问题不是很好,我在这方面还是新手。所以,我需要用元素更新dynamodb表中的一列,这些元素通过stringset格式或任何colaction格式的mutatuion参数传递。我找到了一个很好的示例(示例2),但im在#metadata=:metadata附近仍然有一个invalidUpdateExpreeson语法错误。我找不到我的错误在哪里。Thanks@Tinou,我复制了你的代码,它只是返回一个空值,没有更新。是否有办法获取日志文件或更多信息。@tkerwood您可以通过控制台(例如“设置”页上的控制台)在AppSync API上启用对CloudWatch的日志记录。