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

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

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

Step Functions AWS は特定のサービスを Amazon ステートメント言語 (ASL) から直接制御できます。詳細については、「他の サービスでの使用」および「サービス API にパラメータを渡す」を参照してください。

最適化された Amazon ECS と Fargate のインテグレーションが Amazon ECS や Fargate SDK のインテグレーションとどう違うのか AWS
  • ジョブの実行 (.sync) 統合パターンがサポートされています。

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

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

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

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

内のパラメータは次のように表されます。Step Functions PascalCase

ネイティブサービス API が camelCase にある場合でも、たとえば API アクションではstartSyncExecution PascalCase、次のようなパラメータを指定します。StateMachineArn

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

Step Functions AWS は特定のサービスを Amazon ステートメント言語 (ASL) から直接制御できます。詳細については、「他の サービスでの使用」および「サービス API にパラメータを渡す」を参照してください。

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

以下には、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 } } }

IAMStep Functions AWS 他のサービスと併用する場合の権限の設定方法については、を参照してください統合サービスの IAM ポリシー