【问题标题】:Reusable State Definition in Step FunctionsStep Functions 中的可重用状态定义
【发布时间】:2021-08-02 15:48:54
【问题描述】:

我们正在通过 AWS Step 函数创建一个由多个 SQL 操作(聚合、转置等)组成的工作流。每个操作都被建模为一个单独的 Lambda,其中包含 SQL 查询。

现在,每个查询都接受来自状态机的输入参数,所以每个 lambda 任务如下:

"SQLQueryTask": {
    "Type": "Task",
    "Parameters": {
        "param1.$": "$$.Execution.Input.param1",
        "param2.$": "$$.Execution.Input.param2"
    },
    "Resource": "LambdaArn",
    "End": true
}

Parameters 块因此对每个 SQLQuery 节点重复。 添加到这一点,因为 Lambdas 可能会间歇性地失败,我们想为它们重试;我们还需要在每个州都有以下重试块:

"Retry": [ {
   "ErrorEquals": [ "Lambda.ServiceException", "Lambda.AWSLambdaException", "Lambda.SdkClientException"],
   "IntervalSeconds": 2,
   "MaxAttempts": 6,
   "BackoffRate": 2
} ]

这使得状态定义变得非常复杂。有没有办法将状态定义的公共部分提取为可重用的部分?

【问题讨论】:

    标签: amazon-web-services aws-lambda etl aws-step-functions


    【解决方案1】:

    一种解决方案可能是使用 AWS CDK (https://aws.amazon.com/cdk/)

    这允许开发人员定义更高级的资源抽象,这些资源可以轻松重复使用。

    这里有一些示例可能会有所帮助:https://docs.aws.amazon.com/cdk/api/latest/docs/aws-stepfunctions-readme.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-05
      • 2018-09-14
      • 2021-11-25
      • 2022-09-23
      • 2021-06-06
      • 1970-01-01
      • 1970-01-01
      • 2022-11-08
      相关资源
      最近更新 更多