AWS пошаговые функции - тип вложенной карты - PullRequest
1 голос
/ 10 февраля 2020

Я новичок в AWS пошаговых функциях и пытаюсь вложить несколько лямбда-задач типа карты. Я испытываю неожиданное поведение с моим подходом, хотя. get_item_list выводит список элементов для подачи на карту get_item_pages. Карта get_item_pages, перебирает get_info. Затем я хочу передать каждый вывод get_info другому типу карты, get_more_info. Причина, по которой я использую функции Map, заключается в том, что я могу использовать функцию разветвления. Первый тип карты, get_item_pages, разворачивается, как и ожидалось. В журналах Lambda CloudWatch я вижу начало 10+ потоков журналов. Состояние get_more_info, похоже, не развивается таким же образом. Я часто вижу только один поток журналов в Lambda CloudWatch для вложенного состояния карты.

Я упускаю что-то очевидное в своей реализации или я поступаю совершенно неправильно?

{
  "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
    }
  }
}
...