Step Functions で AWS Lambda 関数をオーケストレーションする - AWS Step Functions

Step Functions で AWS Lambda 関数をオーケストレーションする

Lambda 関数をオーケストレーションするテンプレートでは、サンプルの株式取引ワークフローで複数の Lambda 関数を使用します。1 つの関数が株価を確認した後、人間に株を購入するか売却するかの選択を促します。Choice ステートは、recommended_type 変数に基づいて次に呼び出す関数を選択し、購入または売却を完了させます。いずれかの関数が完了すると、その取引結果がパブリッシュされ、ワークフローは終了となります。

人間による承認ステップを実装するために、ワークフロー実行は一意の TaskToken が返されるまで一時停止します。このプロジェクトでは、ワークフローはタスクトークンを含むメッセージを Amazon SQS キューに渡します。そのメッセージは、メッセージのペイロードに基づいてコールバックを処理するように設定された別の Lambda 関数をトリガーします。ワークフローは、SendTaskSuccess API コールからタスクトークンが返されるまで一時停止します。タスクの詳細については、「タスクトークンのコールバックまで待機する」を参照してください。

ステートマシンの図解

ステップ 1: ステートマシンを作成する

  1. Step Functions コンソールを開き、[ステートマシンの作成] を選択します。

  2. [テンプレートから作成] を選択し、関連するスターターテンプレートを見つけます。[次へ] を選択して続行します。

  3. テンプレートの使用方法を選択します。

    1. デモの実行 – 読み取り専用のステートマシンを作成します。確認後、ワークフローとすべての関連リソースを作成できます。

    2. その上に構築する – 編集可能なワークフロー定義が提供され、内容を確認・カスタマイズし、独自のリソースでデプロイできます (関数やキューなどの関連リソースは自動的には作成されません)。

  4. [テンプレートの使用] を選択して選択を続行します。

    注記

    アカウントにデプロイされたサービスには、Standard 料金が適用されます。

ステップ 2: デモステートマシンを実行する

[デモの実行] オプションを選択した場合、すべての関連リソースがデプロイされ、実行準備が整います。[その上に構築する] オプションを選択した場合は、プレースホルダー値の設定や、カスタムワークフローの実行に必要な追加リソースの作成が必要になることがあります。

  1. [Deploy and run] (デプロイと実行) を選択します。

  2. CloudFormation スタックがデプロイされるのを待ちます。これには最大 10 分かかることがあります。

  3. [実行を開始] オプションが表示されたら、[入力] を確認し、[実行を開始] を選択します。

お疲れ様でした。

これで、ステートマシンのデモが実行されます。グラフビューでステートを選択すると、入力、出力、変数、定義、イベントを確認できます。

Step Functions サービス統合の詳細については、サービスと Step Functions の統合 を参照してください。