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

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

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

Step Functions AWS は特定のサービスを Amazon ステートメント言語 (ASL) から直接制御できます。AWS Step Functions との協働および統合の詳細については、以下を参照してください。

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

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

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

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

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

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

注記

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

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

Step Functions AWS は特定のサービスを Amazon ステートメント言語 (ASL) から直接制御できます。AWS Step Functions との協働および統合の詳細については、以下を参照してください。

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

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