Terraform を複数環境に対応させる作業をしていたタイミングで、apply 時に「ALB に証明書を追加する動作」が失敗するようになった。
エラーは以下。
Error: adding LB Listener Certificate: UnsupportedCertificate: The certificate 'arn:aws:acm:ap-northeast-1:123456789012:certificate/00000000-0000-2222-1111-123456789012' must have a fully-qualified domain name, a supported signature, and a supported key size. status code: 400, request id: 00000000-4444-3333-2222-098765432109 with aws_lb_listener_certificate.attach_certs, on alb.tf line 114, in resource "aws_lb_listener_certificate" "attach_certs": 114: resource "aws_lb_listener_certificate" "attach_certs" {
ローカル名の attach_certs
から分かる通り、証明書の追加設定で失敗している。
なんでじゃろな? と悩んでいたのだけど、こういうことらしい。
Error messages can be a bit misleading at times. You may receive this error if the certificate is still pending validation.
エラーメッセージは時に誤解を招くことがあります。 証明書が検証待ちの場合、このエラーを受け取る場合があります。
はえーなるほど! となり、マネジメントコンソールを確認したら、該当の証明書はその時点では利用可能になっていた。 実際失敗した所から最後 apply
を投げたら、今度は無事完走した。 (その後 destroy
-> apply
したところ、失敗しなかった)
ということで、実行タイミングでコケるから注意しようね! というオチだった。
こういう自体を防ぐために depends_on
なりでリソースに対する関連性を記述しろ、ということなのかもしれないけど、めちゃめちゃ複雑になりがちなので僕はあまり利用していない。