5
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?

More than 3 years have passed since last update.

CloudFormationのJSONにコメントを記述する

Posted at

TL;DR

書き方

AWS DevOps Blogのサンプルそのまま。
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html

{
   "Description" : "This is a sample template.",
   "Resources" : {
      "Bucket98004" : {
         "Type" : "AWS::S3::Bucket",
         "Metadata" : {
            "Comment" : "ここにコメントを書く。",  
            "Version" : "1.2.1_1"
...

}

解説

AWS DevOps Blogに書いてあることの要約。

  • CFn はすべてのResourceでMetadata attributeをサポートしている
  • Metadata Attribute には任意のオブジェクトを含めることができる
    • ので、Commentといった独自オブジェクトを記載できるらしい
  • とはいえ、AWS::CloudFormation::Interfaceといったオブジェクトもあるようなので、AWSで始まるオブジェクトは避けたほうが良さそう。

背景

AWS CloudFormationはJSONとYAMLの2形式で記述できるが、YAMLと違い、JSONにはコメントを記述することができない。

自分でゼロから書くのであればYAMLを使えばいいが、既存のCFnテンプレート、パラメータにはJSONで書かれたものが多い。

YAMLへ変換するとオリジナルのJSONが更新されたときに面倒なのでJSONのまま使いたいが、何が書いてあるのか分からなくなるのでコメントは追記したい。

バッドノウハウ(?)として、今後使われないと思われるKeyを使って
"Comment": "This is comment hogehoge." のように書く手法があると思うけど、将来(?)CFnの予約語と衝突するリスクは避けたい。

CFnのJSONに安全にコメントを書けるような日本語記事が無かったので書いてみた。

5
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
5
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?