【AWS】CloudFormation ~ 疑似パラメータ ~

■ はじめに

https://dk521123.hatenablog.com/entry/2021/10/26/224812
https://dk521123.hatenablog.com/entry/2021/12/01/170326
https://dk521123.hatenablog.com/entry/2021/12/04/202519

の続き。

今回は、AWS CloudFormation (CFn)  でちょくちょく使用する
疑似パラメータ  (Pseudo parameters) について、学ぶ。

目次

【0】疑似パラメータ
【1】AWS::Region
【2】AWS::AccountId
【3】AWS::NoValue

【0】疑似パラメータ

* AWS CloudFormation によって事前定義されたパラメータ
 => 今回、紹介していないものは、
  以下の公式サイトからピックアップしていけばいい

https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/pseudo-parameter-reference.html

【1】AWS::Region

* AWS の Region
 => 「us-west-2」などが返却

サンプル

Outputs:
  MyStacksRegion:
    Value: !Ref "AWS::Region"

【2】AWS::AccountId

* スタックが作成されているアカウントの AWS アカウント ID 
 => 「123456789012」などが返却

【3】AWS::NoValue

* Fn::If 組み込み関数の戻り値として指定すると、
 対応するリソースプロパティを削除

サンプル

# 例
# スナップショット ID が指定されている場合にのみ 
# Amazon RDS DB インスタンスのスナップショットを使用する場合に、
# AWS::NoValue パラメータを使う。
MyDB:
  Type: AWS::RDS::DBInstance
  Properties:
    AllocatedStorage: '5'
    DBInstanceClass: db.t2.small
    Engine: MySQL
    EngineVersion: '5.5'
    MasterUsername:
      Ref: DBUser
    MasterUserPassword:
      Ref: DBPassword
    DBParameterGroupName:
      Ref: MyRDSParamGroup
    # UseDBSnapshot 条件が true に評価された場合は、
    # DBSnapshotIdentifier プロパティに DBSnapshotName パラメータ値が
    # AWS CloudFormation で使用。
    # UseDBSnapshot 条件が false に評価された場合は、
    # DBSnapshotIdentifier プロパティが 自体が削除(ないものとする)。
    DBSnapshotIdentifier:
      Fn::If:
      - UseDBSnapshot
      - Ref: DBSnapshotName
      - Ref: AWS::NoValue

関連記事

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/2021/12/04/202519
CloudFormation ~ DeletionPolicy 属性 ~
https://dk521123.hatenablog.com/entry/2021/12/27/211328
CloudFormation ~ 認証情報の扱い ~
https://dk521123.hatenablog.com/entry/2021/12/28/224501
CloudFormation ~ 条件分岐 ~
https://dk521123.hatenablog.com/entry/2022/07/02/214543
CloudFormation で Github/CodePipeline/CodeBuild を構築する
https://dk521123.hatenablog.com/entry/2021/12/26/155956