是否可以在aws步骤函数中创建一个循环并循环通过json输入数组?
我有一个函数generateEmails
,它创建的数组包含n
个对象:
{
"emails": [
{
"to": [
"willow1@aaa.co.uk"
]
},
{
"to": [
"willow2@aaa.co.uk"
]
}, {
"to": [
"willow3@aaa.co.uk"
]
}
]
}
现在我想为电子邮件数组中的每个对象调用下一个函数sendEmail
,如下所示:
{
"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
}
}
}
这有可能实现吗?
谢谢!
答案 0 :(得分:0)
昨天官方AWS文档已经使用几乎相同的示例进行了更新,正如Ward已经建议的那样。您需要修改此示例并在每次迭代结束时从原始数组(您generateEmails
lambda函数的输出)中删除已处理的数据项。
您可以在我的博文中找到简单的示例:AWS Step Functions. How to process arrays
与此同时,对并行数组处理感兴趣的每个人都可以在AWS论坛上提升map-reduce feature。