📝
Step Functions から ECS RunTask で Fargate を使用する時の注意点
Step Functions から ECS RunTask で Fargate を使用する際、以下のエラーにハマったので、注意点と解決方法を紹介します。
エラー
Ecs.InvalidParameterException
原因
Network Configuration must be provided when networkMode 'awsvpc' is specified. (Service: Ecs, Status Code: 400, Request ID: aaaaa-bbbbb-ccccc-11111-22222)
原因
以下が原因です。
Network Configuration must be provided when networkMode 'awsvpc' is specified.
Step Functions コンソールで、ECS RunTask を選択した際、デフォルトでは以下の設定が記述されています。
{
"LaunchType": "FARGATE",
"Cluster": "arn:aws:ecs:REGION:ACCOUNT_ID:cluster/MyECSCluster",
"TaskDefinition": "arn:aws:ecs:REGION:ACCOUNT_ID:task-definition/MyTaskDefinition:1"
}
上記に、クラスターやタスク定義の ARN を入力するだけではエラーとなりました。
解決策
エラーメッセージに記載されている通り、ネットワーク構成を追記しました。
{
"LaunchType": "FARGATE",
"Cluster": "arn:aws:ecs:REGION:ACCOUNT_ID:cluster/MyECSCluste",
"TaskDefinition": "arn:aws:ecs:REGION:ACCOUNT_ID:task-definition/MyTaskDefinition:1",
"NetworkConfiguration": {
"AwsvpcConfiguration": {
"AssignPublicIp": "ENABLED" | "DISABLED",
"SecurityGroups": [
"security-group-id"
],
"Subnets": [
"subnet-id"
]
}
}
}
上記で実行した結果、タスクが起動することを確認できました。
ちょっとした注意点
Step Functions のパラメーターは、パスカルケースで記載する必要があります。
Step Functions 内のパラメータは、PascalCase の中で表されます。ネイティブサービスAPIが camelCase であってもそれはかわりません。
CLI や SDK などで、キャメルケースだとしても、Step Functions ではパスカルケースで記述する必要があるようです。
地味にハマったので気を付けましょう。
まとめ
今回は、Step Functions から ECS RunTask で Fargate を使用する時の注意点を紹介しました。
参考になれば幸いです。
Discussion