サービスを Step Functions ワークフローに統合する - AWS Step Functions

サービスを Step Functions ワークフローに統合する

前のトピック、「ステートマシンを作成する」では、ワークフロープロトタイプにすべてのステップを追加しました。次に、Lambda 関数を作成してワークフローに完全に統合します。Lambda 関数を呼び出す [クレジット限度額を取得] という名前の Task 状態を設定します。Task 状態内では、Step Functions がサポートする AWS SDK 統合を使用できます。

ワークフローの最初のサービス統合を定義するには、最初に Lambda 関数を作成します。次に、ワークフローを更新して Lambda 関数とのサービス統合を指定します。このチュートリアルで使用する Lambda 関数は、申請されたクレジット限度額を表す、ランダムに生成された整数を返します。

ステップ 1: Lambda 関数を作成およびテストする

関数のコードは、AWS Management Console または使い慣れたエディタで作成できます。次のステップでは、RandomNumberforCredit というタイトルの Node.js Lambda 関数を作成します。

重要

Lambda 関数は、ステートマシンと同じ AWS リージョンに作成してください。

  1. 新しいタブまたはウィンドウで Lambda コンソールを開き、RandomNumberforCredit というタイトルの Node.js Lambda 関数を作成します。コンソールを使用した Lambda 関数の作成については、「AWS Lambda デベロッパーガイド」の「コンソールで Lambda の関数の作成」を参照してください。

  2. [RandomNumberforCredit] ページで、[index.mjs] を選択し、[コードソース] 領域の既存のコードを次のコードに置き換えます。

    export const handler = async function(event, context) { const credLimit = Math.floor(Math.random() * 10000); return (credLimit); };
  3. [関数の概要]セクションから、Lambda 関数の Amazon リソースネームをコピーし、そのテキストファイルに保存します。[クレジット限度額を取得] 状態のサービス統合を指定する場合は、関数 ARN が必要になります。ARN の例を次に示します。

    arn:aws:lambda:us-east-2:123456789012:function:HelloWorld
  4. [デプロイ] を選択して、次に [テスト] を選択して変更をデプロイし、Lambda 関数の出力を確認します。

ステップ 2: ワークフローの更新 - [クレジット限度額を取得] 状態を設定する

Step Functions コンソールで、ワークフローを更新して、ステップ 1 で作成した RandomNumberforCredit Lambda 関数 とのサービス統合を指定します。

  1. チュートリアル 1 で作成したワークフロープロトタイプを含む、Step Functions コンソールウィンドウを開きます。

  2. [クレジット限度額を取得] 状態を選択し、[設定] タブで次の操作を行います。

    1. [統合タイプ] は、デフォルトの [最適化] のままにします。

      Step Functions を使用すると、他の AWS のサービス と統合して、ワークフロー内でそれらを調整できます。サービス統合とタイプの詳細については、「サービスと Step Functions の統合」を参照してください。

    2. [関数名] には、ドロップダウンリストから [RandomNumberforCredit] Lambda 関数を選択します。

    3. 残りの項目は、デフォルトの選択のままにします。

  3. このウィンドウを開いたままにして、次のトピックに進みます。

注記

次の例に示すように、サービス名と API コールを指定することにより、サポートされている他の AWS SDK 統合を Task 状態内で使用することもできます。詳細については、サービスと Step Functions の統合 を参照してください。

arn:aws:states:::aws-sdk:serviceName:apiAction

次のステップ

次のトピック、「条件付きロジックの追加」では、ワークフローの次のステップを決定するために、条件ロジックを使用して選択状態を設定します。