作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 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/
我是一名优秀的程序员,十分优秀!