3

是否可以在 aws step 函数中创建一个循环并遍历 json 输入数组?

我有一个函数generateEmails可以创建包含n多个对象的数组:

{
  "emails": [
    {
      "to": [
        "willow1@aaa.co.uk"
      ]
    },
    {
      "to": [
        "willow2@aaa.co.uk"
      ]
    },    {
      "to": [
        "willow3@aaa.co.uk"
      ]
    }
  ]
}

现在我想为sendEmailemails 数组中的每个对象调用 next 函数,如下所示:

{
  "email": {
    "to": [
      "willow@aaa.co.uk"
    ]
  }
}

在此处输入图像描述

步进功能代码:

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

这有可能实现吗?

谢谢!

4

1 回答 1

1

正如 Ward 已经建议的那样,昨天官方 AWS 文档已经更新了几乎相同的示例。generateEmails您需要修改此示例并在每次迭代结束时从原始数组(lambda 函数的输出)中删除已处理的数据项。

您可以在我的博客文章中找到简单的示例:AWS Step Functions。如何处理数组

同时,对并行数组处理感兴趣的每个人都可以在 AWS 论坛上支持 map-reduce 功能。

于 2018-02-06T09:54:27.713 回答