AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

ClientException: Too many concurrent attempts to create a new revision of the specified family. が出たら、再実行すればいい

タイトルがすべてシリーズ

rails db:create を実行するためだけに null_resource (aws_ecs_task_definition.initialize_db という target) を採用しているんだけど、偶然こんなエラーに遭遇した。

╷
│ Error: failed creating ECS Task Definition (example-task-definition-initialize-db-backend): ClientException: Too many concurrent attempts to create a new revision of the specified family.
│
│   with aws_ecs_task_definition.initialize_db,
│   on ecs.tf line 32, in resource "aws_ecs_task_definition" "initialize_db":
│   32: resource "aws_ecs_task_definition" "initialize_db" {
│
╵

なんなん? と思って調べたら以下とのこと。

https://qiita.com/keiSunagawa/items/e78d1835d531574c25e4#%E6%AC%A0%E7%82%B9

revisionがsequentialな番号を必要とするのに対してterraform側が並列に作りに行くのが理由ですね 仮に複数段作成の対応をするならrevisionをインクリメントしつつ terraform apply を実行してくれる外部ツールなどが必要ですね

ギョワッ。

本家にも

と思ったら本家にも issue に上がってた。

https://github.com/hashicorp/terraform-provider-aws/issues/9777

Running the apply back to back usually gets over it.

コメント兄貴の言う通りだと、再実行したら動くよ、とのことで実際そうだったんだけど、今回は素直に削除して対応した。 どうせ何回もやらんし初回も初回だけなので、 ecs exec でフォロー出来るとこは無理しないことに。

https://github.com/hashicorp/terraform-provider-aws/issues/9777#issuecomment-1208654026

遭遇したら再度 apply すればいい、というのはうーんという感じ。