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