Como faço para usar dinamicamente os parâmetros armazenados no Systems Manager com uma pilha do AWS CloudFormation?

2 minuto de leitura
0

Tenho vários valores de parâmetros armazenados no AWS Systems Manager Parameter Store. Quero usar esses parâmetros dinamicamente em uma pilha do AWS CloudFormation com base nos meus requisitos.

Resolução

A resolução a seguir usa Windows e Linux como exemplos de ambientes para demonstrar como usar parâmetros diferentes dinamicamente em uma pilha do CloudFormation.

  1. Abra o console do AWS Systems Manager.

  2. No painel de navegação, escolha Grupos de parâmetros.

  3. Crie parâmetros do Systems Manager como tipo String para armazenar IDs de imagem de máquina da Amazon (AMI) para Linux ou Windows.

    Linux:

    LinuxAmiId - AMI-Id-for-Linux-resources

    -or-

    Windows:

    WindowsAmiId - AMI-Id-for-Windows-resources

    Observação: Substitua AMI-Id-for-Linux-Resources e AMI-Id-for-Windows-resources pelos IDs de AMI dos seus recursos.

  4. Use o exemplo de modelo do CloudFormation a seguir para criar o parâmetro que seleciona qual AMI usar para implantação:

    {
      "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}}"
              ]
            }
          }
        }
      }
    }

    Observação: No modelo anterior, se AmiToUse for selecionado como Windows, a condição CreateWindowsResources será avaliada como verdadeiro. O CloudFormation usa o valor armazenado no WindowsAmiId para provisionar o recurso AWS::EC2::Instance. Para Linux, a condição é avaliada como falso e o CloudFormation usa o valor armazenado no LinuxAmiId para provisionar o recurso AWS::EC2::Instance.

Para obter mais informações sobre referenciamento dinâmico, consulte Obter valores armazenados em outros serviços usando referências dinâmicas.

Informações relacionadas

Referências dinâmicas

AWS OFICIAL
AWS OFICIALAtualizada há 3 meses