【问题标题】:AWS step function: chosing a Resource dynamicallyAWS step function:动态选择资源
【发布时间】:2020-08-12 03:26:34
【问题描述】:

我想根据上一步的结果动态选择 AWS Lambda 工作程序。类似于{"Resource": "$.worker_arn"}

"RunWorkers": {
      "Type": "Map",
      "MaxConcurrency": 0,
      "InputPath": "$.output",
      "ResultPath": "$.raw_result",
      "Iterator": {
        "StartAt": "CallWorkerLambda",
        "States": {
          "CallWorkerLambda": {
            "Type": "Task",
            "Resource": "$$.worker_arn",
            "End": true
          }
        }
      },
      "Next": "Aggregate"
    },

上一步的输入预期如下: [{"worker_arn":..., "output":1}, {"worker_arn":..., "output":1}, ...], 其中worker_arn 在所有工作人员中都是相同的。

当我编写这样的管道时,linter 抱怨它需要一个 ARN。

有没有比将我的工人 lambda 包装到另一个 lambda 更好的选择?

【问题讨论】:

标签: aws-lambda aws-step-functions


【解决方案1】:

使用"Resource": "arm:aws:states:::lambda:invoke",您可以在运行时使用路径设置"Parameters" 中的"FunctionName" 字段。

{ 
  "StartAt":"CallLambda", 
  "States":{ 
    "CallLambda":{ 
      "Type":"Task",    
      "Resource": "arn:aws:states:::lambda:invoke", 
      "Parameters":{ 
        "FunctionName.$":"$.MyFunction",
        "Payload.$": "$"
       }, 
      "End":true 
    } 
  } 
}

https://docs.aws.amazon.com/step-functions/latest/dg/connect-lambda.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 2022-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多