gpt4 book ai didi

amazon-dynamodb - AppSync DynamoDb,前提是关键元素与架构不匹配

转载 作者:行者123 更新时间:2023-12-02 20:05:05 25 4
gpt4 key购买 nike

我正在尝试在 AppSync 中创建自定义查询类型,以查询默认 ID 以外的字段。

注意:我没有配置排序键或全局二级索引。

数据源已连接到 DynamoDB GameStats 表。该记录存在于表中,但当我查询时,我得到“提供的关键元素与架构不匹配”。

query getGameByMeetupId {
getGameByMeetupId(meetupId: "259028625") {
name
field
year
month
}
}

查询:getGameByMeetupId(meetupId: String): GameStats

请求映射模板:

    {
"version": "2017-02-28",
"operation": "GetItem",
"key": {
"meetupId": $util.dynamodb.toDynamoDBJson($ctx.args.meetupId)
}
}

响应映射模板:$utils.toJson($ctx.result)

错误消息:

{
"data": {
"getGameByMeetupId": null
},
"errors": [
{
"path": [
"getGameByMeetupId"
],
"data": null,
"errorType": "DynamoDB:AmazonDynamoDBException",
"errorInfo": null,
"locations": [
{
"line": 2,
"column": 3,
"sourceName": null
}
],
"message": "The provided key element does not match the schema (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ValidationException; Request ID: MC71RFG6U85PBICS2OA714TLB7VV4KQNSO5AEMVJF66Q9ASUAAJG)"
}
]
}

最佳答案

要使用 DynamoDB 查询,您必须指定分区键的值。

您提到您的表有一个“默认 id”属性。这是你的分区键吗?如果是这样,您有两个选择:

1) 将查询更改为扫描,并在meetupId属性上指定过滤器

2) 添加 GSI,将 meetupId 设置为分区键,然后更新您已经必须针对 GSI 而不是基表的查询

关于amazon-dynamodb - AppSync DynamoDb,前提是关键元素与架构不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54976589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com