翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Step Functions と Lambda を使用してワークフロー内でワークフローを開始する
このサンプルプロジェクトでは、 の使用方法を示します。 AWS Step Functions ステートマシンは、他のステートマシンの実行を開始します。別のステートマシンからステートマシンの実行を開始する方法については、「Step Functions でタスク状態からワークフロー実行を開始する」を参照してください。
ステップ 1: ステートマシンを作成する
-
Step Functions コンソール
を開き、[ステートマシンの作成] を選択します。 -
検索ボックスに
Start a workflow within a workflow
と入力し、返された検索結果から [ワークフロー内でワークフローを開始する] を選択します。 -
[次へ] を選択して続行します。
-
デモを実行して読み取り専用と ready-to-deploy ワークフローを作成するか、ビルドを選択して編集可能なステートマシン定義を作成し、後でデプロイできます。
このサンプルプロジェクトは、以下のリソースをデプロイします。
-
追加のステートマシン このステートマシンの実行は、実行するステートマシンによって開始されます。
-
コールバック Lambda 関数。この関数は、コールバックメカニズムを実装するために追加のステートマシンで使用されます。
-
An AWS Step Functions ステートマシン
-
関連 AWS Identity and Access Management (IAM) ロール
以下のイメージは、[ワークフロー内でワークフローを開始する] サンプルプロジェクトのワークフローグラフを示しています。
-
-
[テンプレートの使用] を選択して選択を続行します。
次のステップは、前の選択肢によって異なります。
-
デモの実行 – によってデプロイされたリソースを使用して読み取り専用プロジェクトを作成する前に、ステートマシンを確認できます。 AWS CloudFormation を に AWS アカウント.
ステートマシンの定義を表示でき、準備ができたら、デプロイと実行を選択してプロジェクトをデプロイし、リソースを作成します。
デプロイでは、リソースとアクセス許可の作成に最大 10 分かかる場合があります。スタック ID リンクを使用して、 の進行状況をモニタリングできます。 AWS CloudFormation.
デプロイが完了すると、コンソールに新しいステートマシンが表示されます。
-
構築 – ワークフロー定義を確認して編集できます。カスタムワークフローの実行を試みる前に、サンプルプロジェクトのプレースホルダーの値を設定する必要がある場合があります。
注記
アカウントにデプロイされたサービスには、標準料金が適用される場合があります。
ステップ 2: ステートマシンを実行する
-
[ステートマシン] ページで、サンプルプロジェクトを選択します。
-
サンプルプロジェクトページで、[実行を開始] を選択します。
-
[実行を開始] ダイアログボックスで、以下の操作を行います。
-
(オプション) 生成されたデフォルトを上書きするカスタム実行名を入力します。
非ASCII名前とログ記録
Step Functions は、 以外のASCII文字を含むステートマシン、実行、アクティビティ、およびラベルの名前を受け入れます。このような文字は Amazon では機能しないため CloudWatch、 でメトリクスを追跡できるようにASCII、文字のみを使用することをお勧めします CloudWatch。
-
(オプション) 入力ボックスに、入力値を として入力しますJSON。デモを実行している場合は、このステップをスキップできます。
-
[実行のスタート] を選択します。
Step Functions コンソールで実行の詳細ページに移動し、グラフビューで状態を選択して、ステップの詳細ペインの関連情報を確認できます。
-
ステートマシンのコード例
このサンプルプロジェクトのステートマシンは、別のステートマシンと AWS Lambda パラメータをそれらのリソースに直接渡すことができます。
このステートマシンの例を参照して、Step Functions が他のステートマシンの StartExecution
APIアクションを呼び出す方法を確認します。他のステートマシンの 2 つのインスタンスを並行して起動します。1 つは ジョブの実行 (.sync) パターンを使用し、もう 1 つは タスクトークンによるコールバックを待つ パターンを使用します。
方法の詳細については、 AWS Step Functions は他の を制御できます AWS サービスについては、「」を参照してくださいサービスと Step Functions の統合。
{
"Comment": "An example of combining workflows using a Step Functions StartExecution task state with various integration patterns.",
"StartAt": "Start new workflow and continue",
"States": {
"Start new workflow and continue": {
"Comment": "Start an execution of another Step Functions state machine and continue",
"Type": "Task",
"Resource": "arn:aws:states:::states:startExecution",
"Parameters": {
"StateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:NestingPatternAnotherStateMachine-HZ9gtgspmdun",
"Input": {
"NeedCallback": false,
"AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id"
}
},
"Next": "Start in parallel"
},
"Start in parallel": {
"Comment": "Start two executions of the same state machine in parallel",
"Type": "Parallel",
"End": true,
"Branches": [
{
"StartAt": "Start new workflow and wait for completion",
"States": {
"Start new workflow and wait for completion": {
"Comment": "Start an execution of the same 'NestingPatternAnotherStateMachine' and wait for its completion",
"Type": "Task",
"Resource": "arn:aws:states:::states:startExecution.sync",
"Parameters": {
"StateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:NestingPatternAnotherStateMachine-HZ9gtgspmdun",
"Input": {
"NeedCallback": false,
"AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id"
}
},
"OutputPath": "$.Output",
"End": true
}
}
},
{
"StartAt": "Start new workflow and wait for callback",
"States": {
"Start new workflow and wait for callback": {
"Comment": "Start an execution and wait for it to call back with a task token",
"Type": "Task",
"Resource": "arn:aws:states:::states:startExecution.waitForTaskToken",
"Parameters": {
"StateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:NestingPatternAnotherStateMachine-HZ9gtgspmdun",
"Input": {
"NeedCallback": true,
"AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id",
"TaskToken.$": "$$.Task.Token"
}
},
"End": true
}
}
}
]
}
}
}
他の で Step Functions を使用するIAMときに を設定する方法の詳細については、「」を参照してください。 AWS サービスについては、「」を参照してくださいStep Functions が統合サービスのIAMポリシーを生成する方法。