0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的備忘録:CloudFrontディストリビューション作成時のCNAMEエラーを回避するには?

Posted at

はじめに

CloudFormation を使って CloudFront ディストリビューションを作成する際に、以下のようなエラーに遭遇しました:

リソース CloudFrontDistribution は CREATE_FAILED 状態です
Resource handler returned message: "Invalid request provided: AWS::CloudFront::Distribution: The parameter CNAME contains one or more parameters that are too small."

このエラーの原因と解決方法について、個人の備忘録として記録します。

書こうと思ったきっかけ

CloudFormation テンプレートを使用して独自ドメイン付きの CloudFront ディストリビューションを構成していたところ、スタック作成時にエラーが発生しました。

個人の備忘録程度の走り書きとなっておりますが、温かい目で見守っていただければ幸いです。

調査の結果、DomainName パラメータが空のまま Aliases に渡されていたことが原因で、CloudFront が "CNAME too small" と判断していたことがわかりました。

エラーの内容

The parameter CNAME contains one or more parameters that are too small.

このエラーは、CloudFront の Aliases(CNAME)に指定された値が 空・無効・短すぎる 場合に発生します。

解決策

CloudFormation テンプレート内で Parameters セクションにデフォルト値を設定することで、CNAME エラーを回避できます。

Parameters:
  DomainName:
    Type: String
    Default: "xxx.blog"
    Description: "独自ドメイン名(例: xxx.blog)"

  HostedZoneId:
    Type: String
    Default: "ZXXXXXXXXXXXXXX"
    Description: "Route53のホストゾーンID"

まとめ

  • DomainName に空文字や不正な値が入ると CloudFront の CNAME エラーが発生します
  • Default を設定することで、値の未指定によるエラーを防止できます

今後同様のテンプレートを作成する際にも、このようにデフォルト値を定義しておくと安心です!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?