LINEとAWSとTwilioとkintoneでBOTを作ってみるハンズオン (4)Step Functionsで複数のLambdaを実行制御する
2017/08/18
目次
作る部分
Step Functionsでこれまで作ったLambdaの実行制御をします。
プログラム
Github-yamamugi_handson_sf_initにあります。
今回は外部モジュールは使わないのでプログラムはzipアップロードではなく、インラインエディタで編集します。
プログラム解説
一部抜粋
- StepFunctionsから受け取ったデータを取得します。
- 次のパラレルステートに渡すデータをオブジェクトに入れてStep Functionsに返します。
Lambda関数の作成
AWSマネジメントコンソールでLambdaを開いて、[関数の作成]をクリックします。
何も選択せず、[一から作成]をクリックします。
何も選択せず、[次へ]をクリックします。
名前 : 1_sf_init
説明 : ヤマムギハンズオン StepFunctionsの最初のステート
ランタイム : Python 3.6
こちらのコードをクリップボードにコピーしておきます。
コードエントリタイプは「コードをインラインで編集」のままで、
元からあるコードを消して、
コピーしたコードを貼り付けます。
環境変数
* LOG_LEVEL : DEBUG(ログを減らしたい場合は ERRORかINFOを設定します)
既存のロールから、手順1と同じlambda_basic_executionを選択します。
[次へ]をクリックします。
[関数の作成]をクリックします。
右上のテストをクリックします。
1 2 3 4 |
{ "phone_number": "08012345678" } |
テストイベントを上記で設定して[保存してテスト]をクリックします。
このような結果になればOKです。
StepFunctionsの作成
はじめてStepFunctionsを作成する場合は、上記の画面となるので[今すぐ始める]をクリックします。
はじめてでない場合はStepFunctionsマネジメントコンソールで[ステートマシンの作成]をクリックします。
ステートマシン名は「sf_1」とします。
ステップ2 : 設計図は何も選択しません。
JSONをクリップボードにコピーしておきます。
(Githubのrawからコピーすると項目のダブルクォーテーションが除去されてこの後エラーになるのでご注意ください。)
コードに貼り付けます。
Resource((4箇所))のダブルクォーテーション内をクリックするとLambdaのARNの候補が表示されるので、ステート名と同じものを選びます。
もしくは「xxxxxxxxxxxx」(4箇所)をアカウントIDに書き換えます。
アカウントIDはマネジメントコンソールの右上のアカウントをクリックして表示される[アカウント]メニューで確認出来ます。
アカウントIDはハイフンなしの12桁の数字です。
ビジュアルワークフローの更新アイコンをクリックしてこのように表示されるとOKです。
[ステートマシンの作成]をクリックします。
ステートマシン実行のIAMロールでそのまま[OK]をクリックします。
[新しい実行]をクリックします。
上記を設定して、[実行の開始]をクリックします。
すべてが緑になって完了すればOKです。
StepFunctionのJSONの解説
詳細は公式のAmazon States Languageでご確認ください。
今回使用している範囲の解説です。
- Comment : コメントです。なんでもいいです。
- StartAt : States内にあるステートのどこから始めるかを指定します。
- States : ステートをカンマ区切りで記述します。
- Type : Lambdaの場合は”Task”を、パラレルの場合は”Parallel”を何もしない場合は”Pass”を指定します。
- Next : 次に実行するステートを指定します。
- OutputPath : ステートから出力する変数を記述します。”$”にするとそのままのアウトプットです。
- InputPath : 直前のステートのOutputPathをそのまま受け取る場合は”$”にします。一部を受け取る場合は”$.to_kintone”などにします。配列の場合”$.a[0:2]”なども可能です。
- Resource : Lambdaの場合、Lambda関数のARNを指定します。
- Branches : Parallelで並列に実行するステートをカンマ区切りで記述します。
- End : States内の終了のステートの場合Trueで指定します。
LambdaのARN
これです。
目次
(4)Step Functionsで複数のLambdaを実行制御する ←今ここ
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2023/01/9784815617929-1-407x596.jpg)
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2024/01/9784815625382-3-420x596.jpg)
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
![](https://www.shuwasystem.co.jp//images/book/637791.jpg)
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
![](https://book.mynavi.jp/files/topics/135344_ext_06_0.jpg?v=1673514682)
「AWSではじめるLinux入門ガイド」という本を書きました。
![](https://www.yamamanx.com/wp-content/uploads/2023/12/81Rp5O9We6L._SY522_.jpg)
![@yamamanx](https://www.yamamanx.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
Developers Summit 2024「エンジニアの成長とそれを支える組織の考え方」を見ました
株式会社ビッグツリーテクノロジー&コンサルティング CTO 高安 厚思さ …
-
-
2019年もありがとうございました!
今年も皆さまありがとうございました。 2019年振り返りです〜 ブログ 投稿記事 …
-
-
「JAWS-UG in AWS Cloud Roadshow 2017 大阪」で運営をしました
AWS Cloud Roadshow 2017 大阪のナイトイベントで、「JAW …
-
-
ヤマムギvol.19 EC2のLinuxでファイル操作(S3, EFS)のデモをしました
ゴールデンウィーク10日連続朝30分のデモチャレンジ7日目でした。 ご参加いただ …
-
-
「四国クラウドお遍路 2021 -コロナ後の地方創生-」に参加しました
徳島サテライト会場 今年の四国クラウドお遍路 2021 -コロナ後の地方創生-は …
-
-
AWS認定のバッジ管理が新しくなったみたいです
ふと、メールが届きました。 なんでしょうね。 いきなりリンクを踏むのもあれなんで …
-
-
「X-Tech JAWS 【第2回】~9割のX-Techと1割の優しさで切り拓く未来~」に行ってきました
「X-Tech JAWS 【第2回】~9割のX-Techと1割の優しさで切り拓く …
-
-
Developers Summit 2018 「マイクロサービスをAWSサーバレス&コンテナで実装する方法」を聞きました
以下は、思ったことや気になったことをメモしていますので、必ずしも登壇者の発表内容 …
-
-
Developers Summit 2018 「Building Real-time Application With AWS AppSync 〜GraphQLの始め方〜」を聞きました
以下は、思ったことや気になったことをメモしていますので、必ずしも登壇者の発表内容 …
-
-
「JAWS-UG朝会 #20」に参加しました
恒例のラジオ体操からっ! はじめてのEKS Kubernetes案件 勉強方法 …