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版」という本を書きました。

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

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

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

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


開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
Java SE 7 Silver対策勉強をしながらメモ 2015/1/27
だんだんなんだか日記じみてきましたが、試験対策メモをいつものごとくマークダウンで …
-
-
TwilioJP-UG大阪 第二回 勉強会「Report SIGNAL2016」に行ってきました
TwilioJP-UG大阪 第二回 勉強会「Report SIGNAL2016」 …
-
-
JAWS DAYS 2024に参加しました!
2024/3/2 JAWS DAYS 2024に参加しました!! これから参加し …
-
-
「Media-JAWS 【第11回】関西開催!」に参加しました
我らが大阪MBSさんのちゃやまちプラザステージで開催されたMedia-JAWS( …
-
-
「IoTの法律勉強会 第1回」に行ってきました
「IoTの法律勉強会 第1回」に行ってきました。 「関西のIoTを盛り上げよう」 …
-
-
「JAWS-UG京都 最新のAIを本気で学ぼう」に参加しました
前日 京都タワーの地下のフードホールで運営メンバーのみなさんとご飯食べてました。 …
-
-
Innovation EGG 第7回 『クラウドネィティブ化する世界』に行ってきました
Innovation EGG 第7回 『クラウドネィティブ化する世界』に行ってき …
-
-
「四国クラウドお遍路 2024 in 高知」に参加しました
JAWS-UGの四国4支部合同による四国クラウドお遍路に参加してきました。 せっ …
-
-
「JAWS-UG in AWS Cloud Roadshow 2017 大阪」で運営をしました
AWS Cloud Roadshow 2017 大阪のナイトイベントで、「JAW …
-
-
トラックボールユーザー集合!確実に何かが始まった日。
Logcool社のトラックボールマウス M570や他のトラックボールマウスを愛用 …