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/2/12
模擬テスト1回目。 90問中79問正解。 正解率87%。 まだ不安。 いつものご …
-
-
「JAWS-UG 四国クラウドお遍路」からの特急南風にて変わり続けなければならないなあと思った
「JAWS-UG 四国クラウドお遍路」というAWSのユーザーグループJAWS-U …
-
-
「JAWS-UG 名古屋 DR対策特集+LT」で発表しました
2021/3/29の「JAWS-UG 名古屋 DR対策特集+LT」で「ブログを大 …
-
-
ひと味違った南国の熱量を感じた高知の午後 ~「コミュニティリーダーズサミット in 高知 2018」に行ってきました~
「コミュニティリーダーズサミット in 高知 2018」という、イカしたイベント …
-
-
「JAWS-UG朝会 #20」に参加しました
恒例のラジオ体操からっ! はじめてのEKS Kubernetes案件 勉強方法 …
-
-
『JAWS-UG 名古屋 セキュリティ勉強会』に参加しました
初心者向けAWSの守り方 JAWS-UG名古屋 森さん 初心者向けということで、 …
-
-
ヤマムギvol.14 AWSの基本(サービスとグローバルインフラストラクチャ)のデモをしました
ゴールデンウィーク10日連続朝30分のデモチャレンジ2日目です。 73名さんもの …
-
-
交通情報系スキルを事例に見る日常生活に溶け込むスキルのテクニック(Alexa Day 2019でのブログ)
以下は、気になったことのメモとか感想を書いています。 登壇者、発表者、主催企業な …
-
-
Developers Summit 2024「技術を超えた成長へ:エンジニアとしてのマインドセットと学びの旅」を見ました
NECソリューションイノベータ株式会社 田中 拓摩さん SAP基幹システムのAW …
-
-
DevLOVE関西 「サイボウズ開発の現場」に行ってきました
DevLOVE関西 「サイボウズ開発の現場」に行ってきました 所感 「KAIZE …