翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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
であってもそれはかわりません。
-
RunTask
は、指定されたタスク定義を使用して新しいタスクを開始します。
Amazon ECS タスクにデータを渡す
Step Functions AWS は特定のサービスを Amazon ステートメント言語 (ASL) から直接制御できます。AWS Step Functions との協働および統合の詳細については、以下を参照してください。
overrides
を使用することで、コンテナのデフォルトコマンドを上書きし、入力を Amazon ECS タスクに渡すことができます。ContainerOverride
を参照してください。この例では、Task
Task
入力からステートに値を渡していました 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 ポリシー」を参照してください。