タイトルがすべてシリーズ
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 すればいい、というのはうーんという感じ。