【问题标题】:AWS step functions - Nested Map typeAWS 阶梯函数 - 嵌套地图类型
【发布时间】:2021-02-10 17:49:56
【问题描述】:

我是 AWS 步骤函数的新手,我正在尝试嵌套多个 Map 类型的 Lambda 任务。不过,我的方法遇到了意外的行为。 get_item_list 输出要输入到 get_item_pages Map 的项目列表。 get_item_pages Map 遍历 get_info。然后我想将 get_info 的每个输出传递给另一个 Map 类型 get_more_info。我使用地图功能的原因是我可以利用扇出功能。第一个 Map 类型 get_item_pages 按预期扇出。在 Lambda CloudWatch 日志中,我可以看到 10 多个日志流启动。不过,get_more_info 状态似乎并没有以同样的方式散开。我经常在 Lambda CloudWatch 中看到嵌套 Map 状态的单个日志流。

我是否在我的实现中遗漏了一些明显的东西,还是我以完全错误的方式处理这个问题?

{
  "Comment": "A nested map example",
  "StartAt": "get_item_list",
  "States": {
    "get_item_list": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:...",
      "Next": "get_item_pages",
      "ResultPath": "$.data"
    },
    "get_item_pages": {
      "Type": "Map",
      "ItemsPath": "$.data.all_items",
      "MaxConcurrency": 100,
      "Iterator": {
        "StartAt": "get_info",
        "States": {
          "get_info": {
            "Type": "Task",
            "Resource": "arn:aws:lambda:...",
            "ResultPath": "$.data",
            "Next": "get_more_info"
          },
          "get_more_info": {
            "Type": "Map",
            "ItemsPath": "$.data.all_data",
            "MaxConcurrency": 100,
            "Iterator": {
              "StartAt": "get_detailed_info",
              "States": {
                "get_detailed_info": {
                  "Type": "Task",
                  "Resource": "arn:aws:lambda:...",
                  "End": true
                }
              }
            },
            "End": true
          }
        }
      },
      "End": true
    }
  }
}

【问题讨论】:

    标签: aws-lambda aws-step-functions


    【解决方案1】:

    这是一个老问题,但我想我会为其他人回答。我不能肯定地说,但您似乎正在经历这种情况,因为 "End": true (表示地图完成)应该是在任务级别,而不是地图级别。将 "End": true 放在地图级别表示状态机的结束。

    确切的结果可能是不确定的,因为 AWS 并没有确切地告诉您迭代将如何通过映射,只会根据您设置的并发性来完成,所以 100。即便如此,所有迭代 (最多 100 个)不能保证同时在地图中移动。

    因此,可能发生的情况是第一次迭代流过 get_more_info(嵌套)映射,然后触发 "End": true,从而结束整个状态机。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多