WorkFlow Studioで描く
2021年に出た機能です。絵を書くのは簡単ですが、途中で保存できないのが少し困ります。そのうち改良されるでしょうが・・・。
コード全体
WorkFlow Studioで絵を書いてからコードに変換できます(逆はできない。。)
"MaxConcurrency": 1 としないとループしないで同時に実行してしまうので注意が必要です(デフォルト無設定)。エラー処理の部分はデフォルトです。
{
"Comment": "A description of my state machine",
"StartAt": "Map",
"States": {
"Map": {
"Type": "Map",
"Iterator": {
"StartAt": "Lambda Invoke",
"States": {
"Lambda Invoke": {
"Type": "Task",
"Resource": "arn:aws:states:::lambda:<lambda-name>",
"OutputPath": "$.Payload",
"Parameters": {
"FunctionName": "map_step_function:$LATEST"
},
"Retry": [
{
"ErrorEquals": [
"Lambda.ServiceException",
"Lambda.AWSLambdaException",
"Lambda.SdkClientException"
],
"IntervalSeconds": 2,
"MaxAttempts": 6,
"BackoffRate": 2
}
],
"End": true
}
}
},
"End": true,
"MaxConcurrency": 1
}
}
}
Lambda関数はこちらのを使っています。
arn:aws:states:::lambda:<lambda-name> という名前になるようにしてnode.js で作成します。
exports.handler = (event, context, callback) => {
callback(null, "Hello, " + event.who + "!");
};
[
{
"who": "bob"
},
{
"who": "meg"
},
{
"who": "joe"
}
]
実行すると、イテレートしていることが分かります。
0 件のコメント:
コメントを投稿