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認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。
「AWS教科書 AWS認定デベロッパーアソシエイト テキスト&問題集 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
Developers Summit 2024「クラウドのポテンシャルを引き出す鍵 – ポータビリティと分散コンピューティングの実践」を見ました
アカマイ・テクノロジーズ合同会社 シニア・テクニカル・ソリューション・アーキテク …
-
-
「Serverless Days Tokyo 2023 重厚長大な企業の内製開発組織で成果を出すためのサーバーレスアーキテクチャ」を見ました
2023/9/23にServerless Days Tokyo 2023に参加し …
-
-
「JAWS-UG名古屋 re:Inventに行ったつもりのLT大会&忘年会」でLTしてきました
大阪から東京へ自転車で向かう初日に名古屋でJAWS-UGでLT大会に参加しようと …
-
-
「AWS re:Invent報告会 by Yappli」で機械学習を始めてみようという気になった
YappliさんとSpeeeさん合同のre:Invent報告会におじゃましました …
-
-
Agile Japan 2015 大阪サテライト「アジャイル開発への架け橋」に行ってきました
Agile Japan 2015 大阪サテライトに行ってきました。 具体的な目的 …
-
-
AWS Summit Tokyo 2017 聴講したセッションのメモ
2017年6月に参加しましたAWS Summitで聴講したセッションのメモを記し …
-
-
スマートスピーカーで提供する料理体験(Alexa Day 2019でのブログ)
以下は、気になったことのメモとか感想を書いています。 登壇者、発表者、主催企業な …
-
-
「〜おじゃったもんせ!〜鹿屋ワーケーションサミット」に参加しました Day2
「〜おじゃったもんせ!〜鹿屋ワーケーションサミット」に参加しました Day1に続 …
-
-
JAWS-UG Osaka 第15回勉強会 AWS Summit Tokyo 2016 アップデート追っかけ会
「JAWS-UG Osaka 第15回勉強会 AWS Summit Tokyo …
-
-
ヤマムギ vol.6(勉強会) 「LINEとAWS(Lambda,Step Functions,API Gateway)とTwilioとkintoneでBOTを作ってみるハンズオン」を開催しました
2017/8/18に ヤマムギ vol.6 「LINEとAWS(Lambda,S …


























