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

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

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

Step Functions は、Amazon States Language から、AWS の特定のサービスを直接制御することができます。AWS Step Functions との協働および統合の詳細については、以下を参照してください。

最適化された Amazon ECS/fargate 統合が Amazon ECS または Fargate AWS SDKとどのように異なるか
  • .sync 統合パターンを使用できます。

  • ecs:runTask は、HTTP 200 のレスポンスを返すことができますが、次のように、空でない Failures フィールドがあります。

    • [Request Response] (リクエストレスポンス): レスポンスを返し、タスクは失敗しません。これは、最適化なしと同じです。

    • [Run a Job] (ジョブを実行する): 空でない Failures フィールドが検出された場合、AmazonECS.Unknown エラーがでて、タスクは失敗します。

    • タスクトークン: 空でない場合 Failures フィールドが検出された場合、AmazonECS.Unknown エラーでてタスクは失敗します。

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

注記

Step Functions 内のパラメータは、PascalCase の中で表されます。ネイティブサービスAPIが camelCase であってもそれはかわりません。

注記

Overrides パラメータの場合、 Step Functions は executionRoleArn または taskRoleArnContainerOverrides としてサポートしていません。

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

Step Functions は、Amazon States Language から、AWS の特定のサービスを直接制御することができます。AWS Step Functions との協働および統合の詳細については、以下を参照してください。

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 } } }

他の AWS のサービスで Step Functions を使用して IAM を設定する方法については、統合サービスの IAM ポリシー を参照してください。