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を実行制御する ←今ここ
最後までお読みいただきましてありがとうございました!
【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。
【PR】 「AWSではじめるLinux入門ガイド」という本を書きました。
【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。
【PR】 「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル」という本を書きました。

開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
JAWS-UG 関西IoT専門支部「マクニカkibo + AWS IoTハンズオン」に行ってきました、というか運営メンバーとして参加してきました
2015/12/19(土)はJAWS-UG 関西IoT専門支部の記念すべき1回目 …
-
-
JAWS DAYS 2022で大阪サテライトスタッフ、サポーターセッション登壇、懇親会LT登壇しました
2022/10/8(土) JAWS DAYS 2022で大阪サテライト会場のスタ …
-
-
docomo雑談APIのAPIキーを発行する
docomo雑談 APIのキー取得の方法です。 (2017年8月13日時点の情報 …
-
-
「 MonotaRO Tech Talk #1」に行ってきました
モノタロウさんの「MonotaRO Tech Talk」に行ってきました。 ビー …
-
-
AlexaのSmart HomeをAWSで作る方法(Alexa Day 2019でのブログ)
以下は、気になったことのメモとか感想を書いています。 登壇者、発表者、主催企業な …
-
-
「AWS Expert Online 13 / JAWS-UG浜松 AWS勉強会 2021#1」に参加しました
本日のAWS Expert Onlineのテーマは「今日から始める、イベントドリ …
-
-
「機械学習・データサイエンス基礎講座(1)」に参加しました
異業種データサイエンス研究会を主宰されている井伊さんが開催される連続の基礎講座の …
-
-
Alexa Day 2018で「How do we connect VUI to the real services using serverless」を聞きました
photo by Atsushi Ando Serverless for VUI …
-
-
TwilioJP-UG大阪 第二回 勉強会「Report SIGNAL2016」に行ってきました
TwilioJP-UG大阪 第二回 勉強会「Report SIGNAL2016」 …
-
-
「GCPUG Tokyo Container Builder Day February 2018」に行ってきました
GCPUGは神戸以来の2回目で参加させていただきました。 申し込もうかと思ったら …