как пройти через ввод json - пошаговая функция / конечный автомат aws

Можно ли создать цикл в функции шага aws и выполнить цикл через входной массив json?

У меня есть функция generateEmails, которая создает массив с n количеством объектов:

{
  "emails": [
    {
      "to": [
        "[email protected]"
      ]
    },
    {
      "to": [
        "[email protected]"
      ]
    },    {
      "to": [
        "[email protected]"
      ]
    }
  ]
}

и теперь я хочу вызвать следующую функцию sendEmail для каждого объекта в массиве электронных писем примерно так:

{
  "email": {
    "to": [
      "[email protected]"
    ]
  }
}

введите описание изображения здесь

код ступенчатой ​​функции:

{
  "Comment": "A state machine that prepares and sends confirmation email ",
  "StartAt": "generateEmails",
  "States": {
    "generateEmails": {
      "Type": "Task",
      "Resource": "arn:aws:lambda::prepare-confirmation-email",
      "Next": "sendEmail"
    },
    "sendEmail": {
      "Type": "Task",
      "Resource": "arn:aws:lambda::function:template-service",
      "End" : true
    }
  }
}

Возможно ли этого достичь?

Спасибо!


person Ward    schedule 09.11.2017    source источник
comment
нашел это - justinmchase.com/2017/03/08/ iterating-with-aws-step-functions, может быть единственным обходным путем   -  person Ward    schedule 09.11.2017


Ответы (1)


Вчера официальная документация AWS была обновлена ​​примерно таким же примером, как уже сообщил Уорд. Вам необходимо изменить этот пример и удалить обработанный элемент данных из исходного массива (результат вашей generateEmails лямбда-функции) в конце каждой итерации.

Вы можете найти простой пример в моем сообщении в блоге: AWS Step Functions. Как обрабатывать массивы

В то же время все, кто интересуется параллельной обработкой массивов, могут проголосовать за map-reduce функция на форумах AWS.

person Андрей Максимов    schedule 06.02.2018