Lambda を使用する Step Functions ステートマシン状態の作成 - AWS Step Functions

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Lambda を使用する Step Functions ステートマシン状態の作成

このチュートリアルでは、 を使用して AWS Lambda 関数 AWS Step Functions を呼び出すシングルステップワークフローを作成します。

注記

Step Functions はステートマシンタスクに基づいています。Step Functions では、ステートマシンはワークフローと呼ばれます。これは、一連のイベント駆動型ステップです。ワークフローの各ステップはステートと呼ばれます。たとえば、タスク状態は、別の AWS のサービス や API の呼び出しなど、別の AWS サービスが実行する作業単位を表します。タスクを行うワークフローを実行するインスタンスは、Step Functions では実行と呼ばれます。

詳細については、以下を参照してください。

Lambda 関数はサーバーレスで、記述が容易なため、Lambda は Task 状態に適しています。 AWS Management Console または任意のエディタでコードを記述できます。 AWS は、関数のコンピューティング環境を提供し、実行することの詳細を処理します。

ステップ 1: Lambda 関数を作成する

Lambda 関数は、イベントデータを受け取り、グリーティングメッセージを返します。

重要

Lambda 関数が AWS リージョン ステートマシンと同じ AWS アカウントにあることを確認します。

  1. Lambda コンソールを開き、[関数を作成] を選択します。

  2. [関数の作成] ページで、[一から作成] を選択します。

  3. [関数名] に「HelloFunction」と入力します。

  4. その他のすべてのオプションはデフォルトのまま選択して、[関数を作成] を選択します。

  5. Lambda 関数が作成されたら、ページの右上隅に表示されている関数の Amazon リソースネーム (ARN) をコピーします。ARN の例を次に示します。

    arn:aws:lambda:region:123456789012:function:HelloFunction
  6. Lambda 関数の以下のコードを [HelloFunction] ページの [コードソース] セクションにコピーします。

    export const handler = async(event, context, callback) => { callback(null, "Hello from " + event.who + "!"); };

    このコードは、関数に渡された event オブジェクトから提供された入力データの who フィールドを使用して、挨拶をアセンブルします。後で新しい実行をスタートするときに、この関数の入力データを追加します。callback メソッドによって、関数からアセンブルされた挨拶が返されます。

  7. [デプロイ] を選択します。

ステップ 2: Lambda 関数をテストする

Lambda 関数をテストしてオペレーションを確認します。

  1. [テスト] を選択します。

  2. イベント名()で、HelloEvent と入力します。

  3. Event JSON データを次のものに置き換えます。

    { "who": "AWS Step Functions" }

    "who" エントリは Lambda 関数の event.who フィールドに対応し、挨拶を完了させます。ステートマシンを実行する場合にも、同じ入力データを入力します。

  4. [保存] を選択し、次に [テスト] を選択します。

  5. テスト結果を確認するには、[Execution result] (実行結果) で、[Details] (詳細) を展開します。

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

Step Functions コンソールを使用して、ステップ 1 で作成した Lambda 関数を呼び出すステートマシンを作成します。

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

    重要

    ステートマシンが、前に作成した Lambda 関数と同じ AWS アカウントとリージョンにあることを確認します。

  2. [テンプレートを選択] ダイアログボックスで [空白] を選択します。

  3. [選択] を選択して、デザインモード で Workflow Studio を開きます。

  4. 左側の[状態ブラウザ] で、[アクション] タブが選択されていることを確認します。それから、AWS Lambda 呼び出し API を [最初の状態をここにドラッグ] とラベル付けされた空の状態にドラッグします。

  5. 右側の [Inspector] パネルで、Lambda 関数を設定します。

    1. [API パラメータ] セクションで、[関数名] ドロップダウンリストで、以前に作成した Lambda 関数を選択します。

    2. [ペイロード] ドロップダウンリストでは、デフォルトの選択をそのまま使用します。

  6. (オプション) [定義] を選択すると、ステートマシンの Amazon States Language (ASL) の定義が表示されます。この定義は、[アクション] タブと [Inspector] パネルの選択によって自動的に生成されます。

  7. ステートマシンの名前を指定します。これを行うには、MyStateMachine のデフォルトステートマシン名の横にある編集アイコンを選択します。次に、[ステートマシンの設定][ステートマシン名] ボックスに名前を入力します。

    例えば、名前を LambdaStateMachine と入力します。

    注記

    ステートマシン、実行、アクティビティタスクの名前は 80 文字以下にする必要があります。これらの名前は、アカウントと AWS リージョンで一意である必要があり、次のいずれかを含めることはできません。

    • 空白

    • ワイルドカード文字 (? *)

    • 角かっこ (< > { } [ ])

    • 特殊文字 (" # % \ ^ | ~ ` $ & , ; : /)

    • 制御文字 (\\u0000 - \\u001f または \\u007f - \\u009f)

    Step Functions では、ステートマシン、実行、アクティビティ、ラベルに、ASCII 以外の文字を含む名前を使用できます。このような文字は Amazon CloudWatch では機能しないため、CloudWatch でメトリクスを追跡できるように ASCII 文字のみを使用することをお勧めします。

  8. (オプション) [ステートマシンの設定] で、ステートマシンのタイプや実行ロールなど、他のワークフロー設定を指定します。

    このチュートリアルでは、[ステートマシンの設定] のデフォルト設定をすべてそのまま使用します。

  9. [作成] を選択します。

  10. [ロールの作成を確認] ダイアログボックスで、[確認] を選択して続行します。

    [ロールの設定を表示] を選択して [ステートマシンの設定] に戻ることもできます。

    注記

    Step Functions が作成した IAM ロールを削除すると、Step Functions を後で再作成することはできません。同様に、ロールを変更すると (例えば、IAM ポリシーのプリンシパルから Step Functions を削除するなど)、後で Step Functions でそれを元の設定に復元することはできません。

ステップ 4: ステートマシンを実行する

ステートマシンを作成した後、それを実行できます。

  1. [ステートマシン] ページで、[LambdaStateMachine] を選択します。

  2. [実行のスタート] を選択します。

    [実行を開始] ダイアログが表示されます。

  3. (オプション) 生成されたデフォルトを上書きするカスタム実行名を入力します。

    非 ASCII 名とログ記録

    Step Functions では、ステートマシン、実行、アクティビティ、ラベルに、ASCII 以外の文字を含む名前を使用できます。このような文字は Amazon CloudWatch では機能しないため、CloudWatch でメトリクスを追跡できるように ASCII 文字のみを使用することをお勧めします。

  4. [入力] 領域で、サンプルの実行データを次のものに置き換えます。

    { "who" : "AWS Step Functions" }

    "who" は Lambda 関数が挨拶する相手の名前を取得するために使用するキー名です。

  5. [実行のスタート] を選択します。

    ステートマシンの実行が開始され、実行中の実行が表示されている新しいページが表示されます。

  6. Step Functions コンソールから実行 ID のタイトルが付いたページが表示されます。このページは、[実行の詳細] ページと呼ばれます。このページでは、実行の進行中または完了後に実行結果を確認できます。

    実行結果を確認するには、[グラフビュー] で個々の状態を選択し、ステップの詳細 ペインの個々のタブを選択すると、入力、出力、定義などの各状態の詳細がそれぞれ表示されます。[実行の詳細] ページに表示できる実行情報の詳細については、「実行の詳細の概要」を参照してください。

注記

ステートマシンから Lambda を呼び出す際にペイロードを渡すこともできます。Parameters フィールドにペイロードを渡すことによって Lambda を呼び出す方法の詳細と例については、「Step Functions を使用して AWS Lambda 関数を呼び出す」を参照してください。