问题描述
我有一个具有以下特征的 DynamoDB 表(出于安全原因更改了名称)-
表名 - ABC
Index - XYZ-index(这是一个全局二级索引(GSI))
索引的分区键 - XYZ
"STATE NAME": {
"Type": "Task","Resource": "arn:aws:states:::dynamodb:getItem","Parameters": {
"TableName": "ABC","IndexName": "XYZ-index","Key": {
"XYZ": {
"S.$": "$.Main.Item.Request.ID"
}
}
},"ResultPath": "$.soME_PATH","Next": "NEXT STATE"
}
我正在尝试使用 step 函数的这种状态从使用其索引之一的 DynamoDB 表中获取项目。当我尝试保存状态机时,出现不支持字段 IndexName 的错误。
那么如何通过在阶跃函数的状态下查询表的 GSI 来从 DynamoDB 表中获取项目?
解决方法
我们需要为 GSI 使用 Query Api,我相信状态机只支持 Get、Put、Update 和 Delete DynamoDB item APIs 而不是 Query。 IndexName 不是 getItem 中的一个选项。