Cloudformation
Basic structure of Json and Yaml templates
| YAML | JSON |
|---|---|
AWSTemplateFormatVersion: 2010-09-09
Description: Yaml string, version 1.0
Metadata: {}
Parameters: {}
Mappings: {}
Conditions: {}
Transform: {}
Resources: {}
Outputs: {}
|
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "JSON string, version 1.0",
"Metadata": {},
"Parameters": {},
"Mappings": {},
"Conditions": {},
"Transform": {},
"Resources": {},
"Outputs": {}
}
|
Structured template
| YAML | JSON |
|---|---|
AWSTemplateFormatVersion: 2010-09-09
Description: JSON string
Metadata: {}
Parameters:
InstanceTypeParameter:
Type: String
Default: t2.micro
AllowedValues:
- t2.micro
- m1.smal
Description: 'Enter t2.micro, m1.large'
Mappings: {}
# Mapping01:
# Key01:
# Name: Value01
# Key02:
# Name: Value02
Conditions: {}
Transform: {}
# AWS::serverless
# AWS::Include (reusing template snippets)
Resources:
MyBucket: #logicalID must be unique, can be reused within the template
Type: 'AWS:S3::Bucket' #type of resource to create
Properties: #additional options for a resource
'Fn::Transform;:
- Name: 'AWS::Include'
Parameters:
Location: s3://bucket/MyBucketName.yaml
Outputs: {}
# logicalID:
# Descryption:
# Value:
# Export:
# Name: Value to export
|
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "JSON string",
"Metadata": {},
"Parameters": {
"InstanceTypeParameter": {
"Type": "String",
"Default": "t2.micro",
"AllowedValues": [
"t2.micro",
"m1.small"
],
"Description": "Enter t2.micro, m1.small"
}
},
"Mappings": {},
"Conditions": {},
"Transform": {},
"Resources": {},
"Outputs": {}
}
|
Intrinsic Functions (buildin)
Use intrinsic functions in your templates to assign values to properties that are not available until runtime.
Fn::Base64 Fn::Cidr Condition Functions Fn::FindInMap Fn::GetAtt Fn::GetAZs Fn::ImportValue Fn::Join Fn::Select Fn::Split Fn::Sub Ref
Syntax
Function short form
The exclamation point indicates the YAML short form of a command. It does not indicate a Boolean not.
"Fn::And": [{condition}, {...}] #Json
Fn::And: [Condition] #yaml full syntax
!And [condition] #short form