AWS::EC2::Instance
やAWS::EC2::LaunchTemplate
で指定するプロパティUserData
を環境別に指定するにはどう書けばいいか悩み、ググっても出てこなかったのでメモ。
今回は「本番環境」と「それ以外の環境」で分けたい場合について記載する。
Parameters:
env:
AllowedValues:
- 'prod'
- 'stg'
- 'dev'
Type: String
Conditions:
IsProduction: !Equals [!Ref env, 'prod']
Resources:
EC2:
Type: AWS::EC2::Instance
Properties:
UserData:
Fn::If:
- IsProduction
- Fn::Base64: !Sub |
{{本番環境用の処理}}
- Fn::Base64: !Sub |
{{それ以外の環境用の処理}}