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

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

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

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

注記

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

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

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

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

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

重要

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

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

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

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

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

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

    arn:aws:lambda:us-east-1: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. イベント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 ステートメント言語 (ASL) 定義が表示されます。この定義は、アクションタブとインスペクターパネルの選択に基づいて自動的に生成されます。

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

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

    注記

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

    • 空白

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

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

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

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

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

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

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

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

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

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

    注記

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

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

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

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

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

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

  3. (オプション) 実行を識別するには、名前を指定するか、デフォルトで生成された実行名 を使用します。

    注記

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

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

    { "who" : "AWS Step Functions" }

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

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

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

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

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

注記

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