AWS Step Functions まずはパラレルでLambdaを並列実行してみました
複数のlambdaの実行制御をLambdaでやってましたが、その部分をStep Functionsで可視化して分けられるのかと思い使えるようにしていきたいと思います。
まずは、パラレルでLambdaを並列実行してみました。
目次
試すこと
最初のLambdaがSQSにキューを作って、次の2つのLambdaがキューの内容を並列でSlackへ投稿します。
Step Functionsの設定
Step Functionsのグラフはこうなりました。
Step Functionsのコードはこちらです。
これをコードに書くとグラフが上記のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
{ "Comment": "SQS Paralell Test", "StartAt": "set_queue", "States": { "set_queue": { "Type": "Task", "Next": "slack_post", "Resource": "arn:aws:lambda:ap-northeast-1:xxxxxxxxxxxx:function:set_queue" }, "slack_post": { "Type": "Parallel", "Next": "Final State", "Branches": [ { "StartAt": "slack_post1", "States": { "slack_post1": { "Type": "Task", "Resource": "arn:aws:lambda:ap-northeast-1:xxxxxxxxxxxx:function:slack_post", "End": true } } }, { "StartAt": "slack_post2", "States": { "slack_post2": { "Type": "Task", "Resource": "arn:aws:lambda:ap-northeast-1:xxxxxxxxxxxx:function:slack_post", "End": true } } } ] }, "Final State": { "Type": "Pass", "End": true } } } |
最初のLambdaの設定
1 2 3 4 |
"Comment": "SQS Paralell Test", "StartAt": "set_queue", "States": { |
- Comment : コメントを記載します
- StartAt : 最初に起動するステートを指定します
- States : ステートを記入していきます
1 2 3 4 5 6 |
"set_queue": { "Type": "Task", "Next": "slack_post", "Resource": "arn:aws:lambda:ap-northeast-1:xxxxxxxxxxxx:function:set_queue" }, |
最初に実行するステートとして”set_queue”を指定したので、”set_queue”の内容を定義します。
- Type : Lambdaを実行する場合”Task”を指定します。
- Next : このステートが正常終了した次に実行するステートを指定します。
- Resource : Lambdaのarnを指定します。
並列で実行するLambdaの設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
"slack_post": { "Type": "Parallel", "Next": "Final State", "Branches": [ { "StartAt": "slack_post1", "States": { "slack_post1": { "Type": "Task", "Resource": "arn:aws:lambda:ap-northeast-1:xxxxxxxxxxxx:function:slack_post", "End": true } } }, { "StartAt": "slack_post2", "States": { "slack_post2": { "Type": "Task", "Resource": "arn:aws:lambda:ap-northeast-1:xxxxxxxxxxxx:function:slack_post", "End": true } } } ] }, |
- Type : 並列実行のステートとして”Parallel”を指定します。
- Next : 並列実行するステートがすべて正常終了した次に実行するステートを指定します。
- Branches : ステートの固まり(States)の配列を定義します。
Branchesの配列の中はそれぞれがStatesとなるので、”StartAt”から指定する必要があるようです。
終了処理
1 2 3 4 5 |
"Final State": { "Type": "Pass", "End": true } |
- Type : 何もしない”Pass”を指定します。
- End : 終了なので trueを指定します。
コード
githubにおいてます。
手っ取り早く試したい方はSlackのwebhook incomingとSQSの設定をしてご利用ください。
余談 嵌ったエラー
「AWL 定義に問題があります。確認してもう一度お試しください」
“Type”: “Task”,
を
“Type”: “task”,
と書いていることに気づかずに上記エラーで少し嵌りました。
次は分岐とループを調べたいです。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。


開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
Application Load Balancer スティッキーセッションでどれぐらい偏るかを偶然見ました
Amazon Linux2のPHPを7.2から7.3へアップデートしましたでアッ …
-
-
Aurora Serverless Data APIを有効にしてQuery Editorを使ってみました
Aurora ServerlessのMySQLでData APIを有効にして作成 …
-
-
AWS Toolkit for EclipseからLambda関数を直接作成できずにMavenでパッケージ化して作成
AWS Toolkit for EclipseからLambda関数を直接作成 チ …
-
-
WordPressの年ごとのブログ投稿数を調べるSQL
毎年年末に使いそうなのでメモです。 [crayon-680f3052336249 …
-
-
S3バケットポリシーでクロスアカウントのPrincipalについて確認
確認したこと ドキュメントではこちらで確認しました。 AWS JSON ポリシー …
-
-
S3バケットにWebフォントをアップロードしてCORSを設定する
Webフォントファイルは、モジワク研究さんのマメロンを使用させていただきました。 …
-
-
AWS CodeStarのプロジェクトテンプレートLambda+Pythonによって生成されるもの
勉強会のデモで、AWS CodeStarのプロジェクトテンプレートLambda+ …
-
-
S3署名付きURL(GetObject)生成後にオブジェクトを上書きアップロードしたら
ダウンロードリクエストを実行したタイミングのオブジェクトがダウンロードされるので …
-
-
Amazon Quantum Ledger Database(QLDB)でサンプル台帳の作成と検証
Quantum Ledger Database(QLDB)を触ったことなかったの …
-
-
YouTubeチャンネル「ヤマムギ」をはじめました
YouTubeチャンネル「ヤマムギ」をはじめました。 2021年GWチャレンジと …