基本の書き方
次の例では、InstanceTypeParameter
というパラメータです。
デフォルトではt2.micro
、他にm1.small
m1.large
のインスタンスタイプを指定できるようになります。
Parameters:
InstanceTypeParameter:
Type: String
Default: t2.micro
AllowedValues:
- t2.micro
- m1.small
- m1.large
Description: Enter t2.micro, m1.small, or m1.large. Default is t2.micro.
上記を参照するには、Ref関数で、InstanceTypeParameter
パラメータを指定するだけです。
Ec2Instance:
Type: AWS::EC2::Instance
Properties:
InstanceType:
Ref: InstanceTypeParameter
ImageId: ami-0ff8a91507f77f867
プロパティ
プロパティ | 説明 |
---|---|
AllowedPattern |
String 型に使用できるパターンを表す正規表現 |
AllowedValues | パラメーターに許容される一連の値を含む配列 |
ConstraintDescription | 制約が違反された場合に、制約について説明するエラーメッセージ |
Default | スタックの作成時に値を指定しなかった場合に、テンプレートで使用される適切な値 |
Description | パラメータの説明 |
MaxLength |
String 型に使用できる最大文字数 |
MaxValue |
Number 型に使用できる数値の最大数 |
MinLength |
String 型に使用できる最少文字数 |
MinValue |
Number 型に使用できる数値の最小数 |
NoEcho | パラメータ値をマスクする |
Type
Type には次のようなもの指定できます。
Type | 説明 | 例 |
---|---|---|
String | 文字列 | dev |
Number | 数値 | 8888 |
List | カンマで区切られた整数または浮動小数点値の配列 | 1,2 |
CommaDelimitedList | カンマで区切られた文字列の配列 | dev,prod |
AWS 固有のパラメータタイプ | ※後述 | |
SSM パラメータータイプ | ※後述 |
AWS 固有のパラメータタイプ
Type | 説明 | 例 |
---|---|---|
AWS::EC2::AvailabilityZone::Name | AZ | us-west-2a |
AWS::EC2::Image::Id | EC2 イメージ ID | ami-0ff8a91507f77f867 |
AWS::EC2::Instance::Id | EC2 インスタンス ID | i-1e731a32 |
AWS::EC2::KeyPair::KeyName | Amazon EC2 のキーペア名 | |
AWS::EC2::SecurityGroup::GroupName | セキュリティグループ名 | my-sg-abc など |
AWS::EC2::SecurityGroup::Id | セキュリティグループ ID | sg-a123fd85 |
AWS::EC2::Subnet::Id | サブネット ID | subnet-123a351e |
AWS::EC2::Volume::Id | Amazon EBS ボリューム ID | vol-3cdd3f56 |
AWS::EC2::VPC::Id | VPC ID | vpc-a123baa3 |
AWS::Route53::HostedZone::Id | Route 53 ホストゾーン ID | Z23YXV4OVPL04A |
ListAWS::EC2::AvailabilityZone::Name | リージョンのAZの配列 | us-west-2a, us-west-2b |
ListAWS::EC2::Image::Id | EC2 イメージ ID の配列 | ami-0ff8a91507f77f867, ami-0a584ac55a7631c0c など |
ListAWS::EC2::Instance::Id | EC2 インスタンス ID の配列 | i-1e731a32, i-1e731a34 など |
ListAWS::EC2::SecurityGroup::GroupName | セキュリティグループ名の配列 | my-sg-abc, my-sg-def など |
ListAWS::EC2::SecurityGroup::Id | セキュリティグループ ID の配列 | sg-a123fd85, sg-b456fd85 など |
ListAWS::EC2::Subnet::Id | サブネット ID の配列 | subnet-123a351e, subnet-456b351e など |
ListAWS::EC2::Volume::Id | EBS ボリューム ID の配列 | vol-3cdd3f56, vol-4cdd3f56 など |
ListAWS::EC2::VPC::Id | VPC ID の配列 | vpc-a123baa3, vpc-b456baa3 など |
ListAWS::Route53::HostedZone::Id | Route 53 ホストゾーン ID の配列 | Z23YXV4OVPL04A, Z23YXV4OVPL04B など |
以下の例では、AWS::EC2::KeyPair::KeyName
および AWS::EC2::Subnet::Id
の型の 2 つのパラメーターが宣言されています。
これらの型では、有効な値は既存のキーペア名およびサブネット ID に制限されます。
mySubnetIDs パラメーターはListなので、ユーザーは 1 つ以上のサブネット ID をリストから指定するということになります。
Parameters:
myKeyPair:
Description: Amazon EC2 Key Pair
Type: "AWS::EC2::KeyPair::KeyName"
mySubnetIDs:
Description: Subnet IDs
Type: "List<AWS::EC2::Subnet::Id>"
SSM パラメータタイプ
Type | 説明 | 詳細 |
---|---|---|
AWS::SSM::Parameter::Name | Systems Manager パラメーターキーの名前 | パラメーターキーを渡す場合は、このパラメーターを使用 |
AWS::SSM::Parameter::Value | 値が文字列の Systems Manager パラメーター | パラメーターストア内の String パラメータータイプに対応 |
AWS::SSM::Parameter::Value> 、、または AWS::SSM::Parameter::Value | 値が文字列のリストである Systems Manager パラメーター | パラメーターストア内の StringList パラメータータイプに対応 |
AWS::SSM::Parameter::Value | 値が AWS 固有のパラメータタイプである Systems Manager パラメータ | (例)AWS::SSM::Parameter::Value<AWS::EC2::KeyPair::KeyName>
|
AWS::SSM::Parameter::Value> | 値が AWS 固有のパラメータタイプのリストである Systems Manager パラメータ | (例)AWS::SSM::Parameter::Value<List<AWS::EC2::KeyPair::KeyName>>
|
CloudFormation のパラメータを Systems Manager パラメータから取得する。使い方は以下の記事がわかりやすい。
CloudFormation コンソールでのパラメーターのグループ化およびソート
CloudFormation コンソールを使用してスタックを作成または更新すると、コンソールに論理 ID により入力パラメーターがアルファベット順に並べられてリストされる。
AWS::CloudFormation::Interface
メタデータキーを使用すれば、パラメーターをグループ化および順序付けすることができる。
使い方は以下の記事で紹介されている「Metadata を使って入力パラメータを見やすく管理する」がわかりやすい。