■ はじめに
https://dk521123.hatenablog.com/entry/2021/12/01/170326
で扱った Parameters について、業務でノウハウが溜まってきたので ここらでまとめてみる
目次
【1】Parameters 【2】使用上の注意 【3】Parameters を設定する 1)基本系 2)値を選択する 3)値を制限するには 4)機密情報を入力する場合(簡易版) 5)機密情報を入力する場合(正式版) 6)複数値を入力したい場合 【4】値を参照するには 補足:疑似パラメータ (Pseudo parameters)
【1】Parameters
* CloudFormation における 入力値を設定できる項目
* データ型、デフォルト値、最大値、最小値などを設定可能 * 指定した値は、「Resources」「Outputs」で使用できる
【2】使用上の注意
* 実際に使うUserDataで使う場合、$XXX/${XXX}/${!XXX} の違いに注意 => 詳細は、以下の関連記事を参照のこと。
CloudFormationで変数を参照したら、エラー「Unresolved resource dependencies」が表示
https://dk521123.hatenablog.com/entry/2024/02/27/211050
【3】Parameters を設定する
1)基本系
Parameters: GithubRepository: Description: This is a sample input. Type: String Default: https://github.com/dk521123/cicd-demo.git
2)値を選択する
* AllowedValues を使う
例1:選択させる項目
Parameters: EnvironmentType: Description: Enter environment type Type: String Default: dev AllowedValues: - dev - stage - prod
例2:EC2 instance Type
Parameters: InstanceTypeParameter: Description: Enter t2.micro, m1.small, or m1.large. Default is t2.micro. Type: String Default: t2.micro AllowedValues: - t2.micro - m1.small - m1.large
3)値を制限するには
* 以下を駆使して実装する + MinValue + MaxValue + MinLength + MaxLength + AllowedPattern
例1:MinValue/MaxValue
Parameters: SamplePort: Description: This is a sample input. Type: Number Default: 443 MinValue: 1 MaxValue: 65534
例2:正規表現による文字種制限
Parameters: SystemName: Type: String Default: hello-world-demo AllowedPattern: "[-_ a-zA-Z0-9]*" ConstraintDescription: "must only contain letters (-_ a-zA-Z0-9)" # ConstraintDescription: 制約が違反された場合に、制約について説明する文字列
4)機密情報を入力する場合(簡易版)
* NoEcho: true を使う
例1:パスワード
Parameters: Password: Description: This is a sample. NoEcho: true Type: String
5)機密情報を入力する場合(正式版)
* Type: AWS::SSM::Parameter::Value を使う
Parameters: Password: Description: Input Systems Manager key for password NoEcho: true Type: AWS::SSM::Parameter::Value<String>
6)複数値を入力したい場合
* 「Type: CommaDelimitedList」「Type: List<Number>」を使う
例1:CommaDelimitedList
Parameters: DbSubnetIpBlocks: Description: "Comma-delimited list of three CIDR blocks" Type: CommaDelimitedList Default: "10.0.48.0/24, 10.0.112.0/24, 10.0.176.0/24"
【4】値を参照するには
# 値をそのまま使いたい場合、Ref 組み込み関数(!Ref)を使用 Repo: !Ref GithubRepository # 詳細は、以下の関連記事を参照のこと。
CloudFormation ~ 組み込み関数 ~
https://dk521123.hatenablog.com/entry/2021/12/04/202519
補足:疑似パラメータ (Pseudo parameters)
# CloudFormation には、事前定義されたパラメータがある Outputs: MyStacksRegion: Value: !Ref "AWS::Region" # 詳細は、以下の関連記事を参照のこと。
CloudFormation ~ 疑似パラメータ ~
https://dk521123.hatenablog.com/entry/2021/12/05/134313
参考文献
https://dev.classmethod.jp/articles/list-of-cloudformation-parameters-by-data-type/
関連記事
CloudFormation ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2024/02/10/231900
CloudFormation ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2021/10/26/224812
CloudFormation ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2021/12/01/170326
CloudFormation ~ 開発環境 ~
https://dk521123.hatenablog.com/entry/2022/05/22/000000
CloudFormation ~ 組み込み関数 ~
https://dk521123.hatenablog.com/entry/2021/12/04/202519
CloudFormation ~ 条件分岐 ~
https://dk521123.hatenablog.com/entry/2022/07/02/214543
CloudFormation ~ 疑似パラメータ ~
https://dk521123.hatenablog.com/entry/2021/12/05/134313
CloudFormation ~ DeletionPolicy 属性 ~
https://dk521123.hatenablog.com/entry/2021/12/27/211328
CloudFormation ~ 認証情報の扱い ~
https://dk521123.hatenablog.com/entry/2021/12/28/224501
CloudFormation ~ S3 ~
https://dk521123.hatenablog.com/entry/2022/05/25/220037
CloudFormation ~ KMS ~
https://dk521123.hatenablog.com/entry/2022/05/26/112627
CloudFormation ~ IAM ~
https://dk521123.hatenablog.com/entry/2022/05/27/100820
CloudFormation ~ EC2 ~
https://dk521123.hatenablog.com/entry/2024/02/11/010935
CloudFormation で Github/CodePipeline/CodeBuild を構築する
https://dk521123.hatenablog.com/entry/2021/12/26/155956
CloudFormation でのトラブル
https://dk521123.hatenablog.com/entry/2022/05/30/191507
CloudFormationで変数を参照したら、エラー「Unresolved resource dependencies」が表示
https://dk521123.hatenablog.com/entry/2024/02/27/211050
シェル ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2014/10/23/005406
シェル ~ Shebang ~
https://dk521123.hatenablog.com/entry/2024/02/02/000000
ヒアドキュメント ~ 複数行の テキストをファイル出力する ~
https://dk521123.hatenablog.com/entry/2016/05/13/231535