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
関連記事
-
-
AWS Storage Gatewayボリュームゲートウェイを作成してWindowsから使用
ボリュームゲートウェイの作成 Storage Gateway作成メニューからボリ …
-
-
JAWS DAYS 2018 「Cost-Driven AWS クラウドアーキテクチャデザインとコスト最適化方法 – Cost-Driven AWS Cloud Architecture Design : The Lean Startup on AWS」を聞きました
以下は、思ったことや気になったことをメモしていますので、必ずしも登壇者の発表内容 …
-
-
Pepperで撮影した写真をAmazon Rekognitionで分析してその結果をPepperがしゃべる ~(1)AWS編~
Pepperの機能を使えるところは使って、何かしたいなあと思ってまして。 目(カ …
-
-
特定AWSアカウント特定リージョンのSNSトピックを削除するLambda(Python)
やりたいこと 特定アカウント内特定リージョン内のSNSトピックを全部削除したいで …
-
-
Amazon Linux2のPHPを7.2から7.3へアップデートしました
WordPressのサイトヘルスの推奨に従って使っていないテーマを削除したの推奨 …
-
-
AWS Toolkit for Eclipseをセットアップする
AWSでそろそろ課金がされつつありますので、夜中はインスタンスを自動停止して朝自 …
-
-
特定AWSアカウント特定リージョンのCloudFormationスタックを削除するLambda(Python)
やりたいこと 特定アカウント内特定リージョン内のCloudFormationスタ …
-
-
「JAWS-UG in AWS Cloud Roadshow 2017 大阪」で運営をしました
AWS Cloud Roadshow 2017 大阪のナイトイベントで、「JAW …
-
-
AWS EC2 インスタンスステータスのチェックで失敗して起動しなくなり復旧
EC2のインスタンスに接続出来なくなったので、AMIから作成してElastic …
-
-
ヤマムギ vol.10 (AWS)EC2モニタリングハンズオン 手順
このブログは2020/5/6に開催しました、「ヤマムギ vol.10 (AWS) …


