😆

CloudFrontのエイリアスに`_`(アンダースコア)を含むCNAMEをいれてはいけない

2021/04/26に公開

Terraformを使ってCloudFrontを作成しようとしたところ、次のエラーメッセージが出力され、CloudFrontディストリビューションの作成に失敗しました。

* aws_cloudfront_distribution.main: error creating CloudFront Distribution: InvalidArgument: The parameter CNAME contains one or more parameters that are not valid.
	status code: 400, request id: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX

CloudFront Error

Domain names must contain one or more dots (.) and can only include lower case alphanumeric characters, dashes (-), and, optionally, a leading "*." to indicate all subdomains of the specified domain, for example, "*.example.com".

CNAMEとして_は登録できるが、CloudFront的には入れられないので、terraform applyする時にエラーで落ちてしまいます。

解決策としてはシンプルで_はCloudFrontの仕様上使えないので-を使うようにしましょう。

TerraformとAWSの世界で、ここではケバブケースを使って、ここではスネークケースを使う、というのをある程度決めておかないと混乱しまう。。

Discussion