Amazon dynamodb AppSync可选解析程序

Amazon dynamodb AppSync可选解析程序,amazon-dynamodb,schema,graphql,resolver,aws-appsync,Amazon Dynamodb,Schema,Graphql,Resolver,Aws Appsync,使用AWS AppSync、Graphql和DynamoDB 下面的查询给我带来了一个问题 eventId是一个可选字段。 运行以下查询时,带有可选eventId字段的记录会触发错误。如果解析程序无法执行,我希望eventId为null。。但是,会触发以下消息 这将如何解决 query listTickets { listTickets { items { id, eventId { id, } } } } “消息”:“

使用AWS AppSync、Graphql和DynamoDB

下面的查询给我带来了一个问题

eventId是一个可选字段。 运行以下查询时,带有可选eventId字段的记录会触发错误。如果解析程序无法执行,我希望eventId为null。。但是,会触发以下消息

这将如何解决

query listTickets {
  listTickets {
    items {
      id,
      eventId {
       id,
      }
    }
  }
}
“消息”:“提供的键元素与架构不匹配(服务:AmazonDynamoDBv2;状态代码:400;错误代码:ValidationException;请求ID:FTFDINCA42EALGI59I2VGH07G7VV4KQNSO5AEMVJF66Q9AAJG)”


运行get项的表是否有一个名为
id
的分区键?还是二级索引?这都是默认值,我没有添加键。它确实感觉像是使用空的可选eventId并尝试在其上查找id,从而触发架构错误。上面的解析程序附加在哪个字段上?它附加到eventId,因此您正在访问$ctx.args.eventId,但eventId不是参数。你能试试$ctx.source.eventId吗?
{
    "version": "2017-02-28",
    "operation": "GetItem",
    "key": {
        "id": $util.dynamodb.toDynamoDBJson($ctx.args.eventId),
    }
}