Step Functions で Amazon ECS または Fargate タスクを管理する - AWS Step Functions

Step Functions で Amazon ECS または Fargate タスクを管理する

Step Functions can control certain AWS services directly from the Amazon ステートメント言語. For more information, see the following:

サポートされている Amazon ECS/Fargate API と構文:

注記

Parameters in Step Functions are expressed in PascalCase, even when the native service API is camelCase.

注記

Overrides パラメータで、Step Functions は、executionRoleArntaskRoleArnContainerOverrides としてサポートしていません。

Amazon ECS タスクにデータを渡す

Step Functions can control certain AWS services directly from the Amazon ステートメント言語. For more information, see the following:

overrides を使用することで、コンテナのデフォルトコマンドを上書きし、入力を Amazon ECS タスクに渡すことができます。「ContainerOverride」を参照してください。この例では、JsonPath を使用して、入力の Task の値を Task 状態に渡します。

以下には、Amazon ECS タスクを実行し、完了するまで待機する Task が含まれます。

{ "StartAt": "Run an ECS Task and wait for it to complete", "States": { "Run an ECS Task and wait for it to complete": { "Type": "Task", "Resource": "arn:aws:states:::ecs:runTask.sync", "Parameters": { "Cluster": "cluster-arn", "TaskDefinition": "job-id", "Overrides": { "ContainerOverrides": [ { "Name": "container-name", "Command.$": "$.commands" } ] } }, "End": true } } }

ContainerOverrides"Command.$": "$.commands" 行は状態の入力からコンテナにコマンドを渡します。​

前の例では、実行への入力が次の場合、各コマンドはコンテナのオーバーライドとして渡されます。

{ "commands": [ "test command 1", "test command 2", "test command 3" ] }

以下には Amazon ECS タスクを実行する Task 状態が含まれ、その後タスクトークンが返されるまで待機します。「タスクトークンのコールバックまで待機する」を参照してください。

{ "StartAt":"Manage ECS task", "States":{ "Manage ECS task":{ "Type":"Task", "Resource":"arn:aws:states:::ecs:runTask.waitForTaskToken", "Parameters":{ "LaunchType":"FARGATE", "Cluster":"cluster-arn", "TaskDefinition":"job-id", "Overrides":{ "ContainerOverrides":[ { "Name":"container-name", "Environment":[ { "Name":"TASK_TOKEN_ENV_VARIABLE", "Value.$":"$$.Task.Token" } ] } ] } }, "End":true } } }

For information on how to configure IAM when using Step Functions with other AWS services, see 統合サービスの IAM ポリシー.