翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Lambda を使用する Step Functions ステートマシン状態の作成
このチュートリアルでは、 AWS Step Functions 関数を呼び出すための単一ステップのワークフローを作成します。 AWS Lambda
注記
Step Functions はステートマシンとタスクに基づいています。Step Functions では、ワークフローをステートマシンと呼びます。ステートマシンは、一連のイベント駆動型ステップです。ワークフローの各ステップはステートと呼ばれます。タスクステートは AWS Lambda、 AWS などの別のサービスが実行する作業単位を表します。タスクステートは任意の API AWS のサービス または API を呼び出すことができます。
詳細については、以下を参照してください。
Lambda 関数はサーバーレスで、記述が容易なため、Lambda は Task
状態に適しています。 AWS Management Console またはお気に入りのエディタでコードを記述できます。 AWS 関数用のコンピューティング環境の提供と実行の詳細を処理します。
ステップ 1: Lambda 関数を作成する
Lambda 関数は、イベントデータを受け取り、グリーティングメッセージを返します。
重要
Lambda AWS AWS 関数がステートマシンと同じアカウントとリージョンにあることを確認してください。
-
Lambda コンソール
を開き、[関数を作成] を選択します。 -
[関数の作成] ページで、[一から作成] を選択します。
-
[関数名] に
HelloFunction
と入力します。 -
その他のすべてのオプションはデフォルトのまま選択して、[関数を作成] を選択します。
-
Lambda 関数が作成されたら、ページの右上隅に表示されている関数の Amazon リソースネーム (ARN) をコピーします。ARN をコピーするには、 をクリックします。ARN の例を次に示します。
arn:aws:lambda:us-east-1:123456789012:function:
HelloFunction
-
Lambda 関数の次のコードをページの [コードソース] セクションにコピーします。
HelloFunction
export const handler = async(event, context, callback) => { callback(null, "Hello from " + event.who + "!"); };
このコードは、関数に渡された
event
オブジェクトから提供された入力データのwho
フィールドを使用して、挨拶をアセンブルします。後で新しい実行をスタートするときに、この関数の入力データを追加します。callback
メソッドによって、関数からアセンブルされた挨拶が返されます。 -
デプロイを選択します。
ステップ 2: Lambda 関数をテストする
Lambda 関数をテストしてオペレーションを確認します。
-
[テスト] を選択します。
-
イベント名()で、
HelloEvent
と入力します。 -
Event JSON データを次のものに置き換えます。
{ "who": "AWS Step Functions" }
"who"
エントリは Lambda 関数のevent.who
フィールドに対応し、挨拶を完了させます。ステートマシンを実行する場合にも、同じ入力データを入力します。 -
[保存] を選択し、次に [テスト] を選択します。
-
テスト結果を確認するには、[Execution result] (実行結果) で、[Details] (詳細) を展開します。
ステップ 3: ステートマシンを作成する
Step Functions コンソールを使用して、ステップ 1 で作成した Lambda 関数を呼び出すステートマシンを作成します。
-
Step Functions コンソール
を開き、[ステートマシンの作成] を選択します。 重要
ステートマシンが、前に作成した Lambda AWS 関数と同じアカウントとリージョンにあることを確認してください。
-
[テンプレートを選択] ダイアログボックスで [空白] を選択します。
-
[選択] を選びます。これにより、デザインモード で Workflow Studio が開きます。
-
左側の[状態ブラウザ] で、[アクション] タブが選択されていることを確認します。次に、以下の操作を実行します。
-
AWS Lambda 呼び出し API を [最初の状態をここにドラッグ] とラベル付けされた空の状態にドラッグします。
-
-
右側の [Inspector] パネルで、Lambda 関数を設定します。
-
[API パラメータ] セクションで、[関数名] ドロップダウンリストで、以前に作成した Lambda 関数を選択します。
-
[ペイロード] ドロップダウンリストでは、デフォルトの選択をそのまま使用します。
-
-
(オプション) [定義] を選択すると、ステートマシンの Amazon ステートメント言語 (ASL) の定義が表示されます。この定義は、[アクション] タブと [Inspector] パネルの選択によって自動的に生成されます。
-
ステートマシンの名前を指定します。これを行うには、デフォルトのステートマシン名の横にある編集アイコンを選択します。MyStateMachine次に、[ステートマシンの設定] の [ステートマシン名] ボックスに名前を入力します。
例えば、名前を
LambdaStateMachine
と入力します。注記
ステートマシン、実行、アクティビティタスクの名前は 80 文字以下にする必要があります。 AWS これらの名前はアカウントと地域で一意である必要があり、次のものを含んではいけません。
-
空白
-
ワイルドカード文字 (
? *
) -
角かっこ (
< > { } [ ]
) -
特殊文字 (
: ; , \ | ^ ~ $ # % & ` "
) -
制御文字 (
\\u0000
-\\u001f
または\\u007f
-\\u009f
)
ステートマシンのタイプが [Express] の場合、ステートマシンを複数回実行する際に同じ名前を指定できます。Step Functions では、複数の実行が同じ名前であっても、Express ステートマシンの実行ごとに一意の実行 ARN を生成します。
Step Functions では、ステートマシン、実行、アクティビティの名前、および ASCII 以外の文字を含むラベルを作成できます。これらの非ASCII名は、Amazonでは機能しません。 CloudWatch CloudWatch メトリクスを追跡できるようにするには、ASCII 文字のみを使用する名前を選択してください。
-
-
(オプション) [ステートマシンの設定] で、ステートマシンのタイプや実行ロールなど、他のワークフロー設定を指定します。
このチュートリアルでは、[ステートマシンの設定] のデフォルト設定をすべてそのまま使用します。
-
[作成] を選択します。
-
[ロールの作成を確認] ダイアログボックスで、[確認] を選択して続行します。
[ロールの設定を表示] を選択して [ステートマシンの設定] に戻ることもできます。
注記
Step Functions が作成した IAM ロールを削除すると、Step Functions を後で再作成することはできません。同様に、ロールを変更すると (例えば、IAM ポリシーのプリンシパルから Step Functions を削除するなど)、後で Step Functions でそれを元の設定に復元することはできません。
ステップ 4: ステートマシンを実行する
ステートマシンを作成した後、それを実行できます。
-
ステートマシンページで、を選択します。LambdaStateMachine
-
[実行のスタート] を選択します。
[実行を開始] ダイアログが表示されます。
-
(オプション) 実行を識別するには、[名前] ボックスに名前を指定します。デフォルトでは、Step Functions は自動的に一意の実行名を生成します。
注記
Step Functions では、ステートマシン、実行、アクティビティの名前、および ASCII 以外の文字を含むラベルを作成できます。これらの非ASCII名は、Amazonでは機能しません。 CloudWatch CloudWatch メトリクスを追跡できるようにするには、ASCII 文字のみを使用する名前を選択してください。
-
[入力] 領域で、サンプルの実行データを次のものに置き換えます。
{ "who" : "AWS Step Functions" }
"who"
は Lambda 関数が挨拶する相手の名前を取得するために使用するキー名です。 -
[実行のスタート] を選択します。
ステートマシンの実行が開始され、実行中の実行が表示されている新しいページが表示されます。
-
Step Functions コンソールから実行 ID のタイトルが付いたページが表示されます。このページは、[実行の詳細] ページと呼ばれます。このページでは、実行の進行中または完了後に実行結果を確認できます。
実行結果を確認するには、[グラフビュー] で個々の状態を選択し、ステップの詳細 ペインの個々のタブを選択すると、入力、出力、定義などの各状態の詳細がそれぞれ表示されます。[実行の詳細] ページに表示できる実行情報の詳細については、「[実行の詳細] ページ - インターフェイスの概要」を参照してください。
注記
ステートマシンから Lambda を呼び出す際にペイロードを渡すこともできます。Parameters
フィールドにペイロードを渡すことによって Lambda を呼び出す方法の詳細と例については、「Step Functions で Lambda を呼び出す」を参照してください。