AWS DynamoDB GetItem 在 step 函数中使用索引

问题描述

我有一个具有以下特征的 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 中的一个选项。