Systems Manager に保存されているパラメータを AWS CloudFormation スタックで動的に使用する方法を教えてください。

所要時間1分
0

AWS Systems Manager Parameter Store に複数のパラメータ値が保存されています。独自の要件に基づいて、これらのパラメータを AWS CloudFormation スタックで動的に使用したいと考えています。

解決策

次の解決策では、CloudFormation スタックで複数のパラメーターを動的に使用する方法を示すために、環境の例として Windows と Linux を使用しています。

  1. AWS Systems Manager コンソールを開きます。

  2. ナビゲーションペインで [パラメータストア] を選択します。

  3. Linux または Windows 用の Amazon マシンイメージ (AMI) ID を保存するために、Systems Manager パラメータは String 型で作成します。

    Linux:

    LinuxAmiId - AMI-Id-for-Linux-resources

    または、

    Windows:

    WindowsAmiId - AMI-Id-for-Windows-resources

    注: AMI-Id-for-Linux-resourcesAMI-Id-for-Windows-resources は、お使いのリソースの AMI ID に置き換えます。

  4. 次の CloudFormation テンプレートの例を使用して、デプロイに使用する AMI を選択するパラメータを作成します。

    {
      "Parameters": {
        "AmiToUse": {
          "Type": "String",
          "AllowedValues": [
            "windows",
            "linux"
          ]
        }
      },
      "Conditions": {
        "CreateWindowsResources": {
          "Fn::Equals": [
            "windows",
            {
              "Ref": "AmiToUse"
            }
          ]
        }
      },
      "Resources": {
        "EC2Instance": {
          "Type": "AWS::EC2::Instance",
          "Properties": {
            "ImageId": {
              "Fn::If": [
                "CreateWindowsResources",
                "{{resolve:ssm:WindowsAmiId:1}}",
                "{{resolve:ssm:LinuxAmiId:1}}"
              ]
            }
          }
        }
      }
    }

    注: 上記のテンプレートでは、AmiToUsewindows に選択されている場合、CreateWindowsResources 条件の評価は true となります。CloudFormation は、WindowsAmiId に保存されている値を使用してAWS::EC2::Instance リソースをプロビジョニングします。Linux の場合、条件は false と評価され、CloudFormation は LinuxAmiId に保存されている値を使用して AWS::EC2::Instance リソースをプロビジョニングします。

ダイナミックリファレンスの詳細については、「ダイナミックリファレンスを使って他のサービスに保存されている値を取得する」を参照してください。

関連情報

ダイナミックリファレンス

AWS公式
AWS公式更新しました 5ヶ月前
コメントはありません

関連するコンテンツ