Quick reference for basic CF template syntax, the use of parameters, mappings, resources, and outputs
Parameters:
Ec2Type:
Type: String
Default: t2.micro
AllowedValues: # Creates drop-down in template upload wizard
- t2.micro
- m1.small
- m1.large
Description:
EC2 Instance Type
Mappings:
SomeRegionMapping:
us-east-1:
foo: bar
us-west-1:
bar: quux
Resources:
Ec2Instance:
Type: AWS::EC2::Instance
Properties:
InstanceType: !Ref Ec2Type # Intrinsic function `!Ref` points to template Parameters
ImageId: ami-467ca739
Tags:
- Key: Env
Value: Development
- Key: Name
Value: !Ref AWS::Region # Intrinsic function `!Ref` with Pseudo Parameter
- Key: SomeMappedValue
Value: !FindInMap # Intrinsic function references template Mappings
- SomeRegionMapping
- !Ref AWS::Region
- foo # In this template would map to value 'bar'
SecurityGroups:
- !Ref BasicSecurityGroup
BasicSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Enable SSH from anywhere
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: 22
ToPort: 22
CidrIp: 0.0.0.0/0
Outputs:
ServerDns:
Value: !GetAtt # Intrinsic function `!GetAtt` refs template resource
- Ec2Instance # From template resource
- PublicDnsName # Public DNS for resource