【发布时间】:2022-10-12 16:02:45
【问题描述】:
我想使用资源 arn:aws:states:::dynamodb:getItem 创建一个 dynamodb 步骤,其中某些属性可能不可用。
我的任务的相关部分如下:
"Get Config": {
"Type": "Task",
"Resource": "arn:aws:states:::dynamodb:getItem",
"Next": "DummyPass",
"Parameters": {
"Key": {
"pk": { "S.$": "$.someKey)" },
"sk": { "S": "A" }
},
"TableName": "test_table"
},
"ResultPath": "$.config",
"ResultSelector": {
"foo.$": "$.Item.foo.S",
"bar.$": "$.Item.bar.S"
},
}
在此任务中,我尝试选择 DynamoDB 类型的注释项,并将其展平为仅包含键和值的 JSON 结构。
似乎没有任何可用的内在函数可以实现这一目标。
解决方法是创建一个 lambda,尽管它违背了现在由 step 函数支持的服务的目的。
【问题讨论】:
-
我希望可以按照您的建议一步完成,我相信将来会更容易。在此之前,您可以通过
Choice步骤检查我们使用的模式,如以下答案所述:stackoverflow.com/a/73967219/179529 -
谢谢@Guy,这些也是您回答中非常有效的观点。我的问题是我正在寻找一种方法来解析
GetItem可能在某些字段不存在的情况下具有稀疏结果的结果。这意味着我什至无法在Pass中执行此操作,因为无法指定可能不存在的字段。相反,我编写了一个 lambda,它进行解组并允许我指定应该包含的字段。
标签: amazon-web-services jsonpath aws-step-functions