はじめに
AWS ECSでタスク定義を登録しようとした際に、「フィールド: family は必須です
」というエラーが表示され、登録ができない事象に遭遇しました。
書こうと思ったきっかけ
受講しているITスクールのハッカソンの開発の一環で、ECSのタスク定義をJSON形式で作成・登録していた際にこのエラーが発生しました。
備忘録として残しておくことで、同じミスを防ぎ、スムーズなデプロイにつなげたいと考えています。
内容
このエラーの原因は、ECSタスク定義において family
フィールドが省略されていたことです。
family フィールドとは?
- タスク定義の名前を指定する必須フィールド。
- 同一のfamily名で再登録するとリビジョンが上がる仕組み。
修正例
以下のように、containerDefinitions
の外側に family
フィールドを追加する必要があります:
{
"family": "my-app-task",
"containerDefinitions": [
{ ... }
],
"taskRoleArn": "arn:aws:iam::xxxxxxxxxxxx:role/ecs-task-execution-role",
"executionRoleArn": "arn:aws:iam::xxxxxxxxxxxx:role/ecs-task-execution-role",
"networkMode": "awsvpc",
"volumes": [
{
"name": "cws-instrumentation-volume",
"host": {}
}
],
"requiresCompatibilities": ["FARGATE"],
"cpu": "256",
"memory": "512"
}
まとめ
family
フィールドは見落としがちですが、ECSタスク定義には必須項目です。
これを忘れると、JSONの構造がいくら正しくても登録できず、手間がかかります。
今後はテンプレートとしてfamily
を最初に記述しておくことで、同様のミスを防いでいきたいと思います...!