テンプレート形式
CloudFormation テンプレートは JSON または YAML 形式で作成できます。両方の形式で同じ CloudFormation 機能と関数を使用できます。
JSON
次の例は、使用可能なすべてのセクションを含む JSON 形式のテンプレートの構造を示しています。
{ "AWSTemplateFormatVersion" : "
version date
", "Description" : "JSON string
", "Metadata" : {template metadata
}, "Parameters" : {set of parameters
}, "Rules" : {set of rules
}, "Mappings" : {set of mappings
}, "Conditions" : {set of conditions
}, "Transform" : {set of transforms
}, "Resources" : {set of resources
}, "Outputs" : {set of outputs
} }
YAML
次の例は、使用可能なすべてのセクションを含む YAML 形式のテンプレートの構造を示しています。
--- AWSTemplateFormatVersion: "
version date
" Description:String
Metadata:template metadata
Parameters:set of parameters
Rules:set of rules
Mappings:set of mappings
Conditions:set of conditions
Transform:set of transforms
Resources:set of resources
Outputs:set of outputs
形式を選択する際は、一番作業しやすい形式を選択してください。YAML では、コメント機能など JSON にはない一部の機能が初めから提供されていることも考慮します。
以下は、インラインコメントを使用した YAML テンプレートの例です。
AWSTemplateFormatVersion: "2010-09-09" Description: A sample template Resources: MyEC2Instance: #An inline comment Type: "AWS::EC2::Instance" Properties: ImageId: "ami-0ff8a91507f77f867" #Another comment -- This is a Linux AMI InstanceType: t2.micro KeyName: testkey BlockDeviceMappings: - DeviceName: /dev/sdm Ebs: VolumeType: io1 Iops: 200 DeleteOnTermination: false VolumeSize: 20
仕様
CloudFormation は、次の JSON および YAML の仕様をサポートしています。
- JSON
-
CloudFormation は ECMA-404 JSON スタンダードに従います。JSON フォーマットの詳細については、http://www.json.org
をご覧ください。 - YAML
-
CloudFormation は YAML バージョン 1.1 仕様をサポートしていますが、いくつかの例外があります。CloudFormation は次の機能をサポートしていません。
-
binary
、omap
、pairs
、set
、およびtimestamp
タグ -
エイリアス
-
ハッシュ結合
YAML の詳細については、https://yaml.org/
を参照してください。 -
詳細はこちら
テンプレート内で指定する各リソースについて、JSON または YAML のいずれかの構文規則に従って、プロパティとその値を定義します。各形式のテンプレート構文の詳細については、テンプレートセクション を参照してください。