Como uso os parâmetros dinamicamente armazenados no Systems Manager com uma pilha do AWS CloudFormation?

2 minuto de leitura
0

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

Breve descrição

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

Importante: ao usar os seguintes comandos e modelos, certifique-se de substituir o Windows e o Linux pelos seus requisitos.

Resolução

1.    Abra o console do AWS Systems Manager.

2.    No painel de navegação, selecione Armazenar parâmetro.

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

-ou-

Windows:

WindowsAmiId - AMI-Id-for-Windows-resources

Observação: substitua AMI-Id-for-Linux-resources e AMI-Id-for-Windows-resources pelos IDs da AMI dos seus recursos.

4.    Use o exemplo a seguir do template do CloudFormation 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 estiver selecionado como janelas, a condição CreateWindowsResources será avaliada como verdadeira. O CloudFormation usa o valor armazenado no WindowsAmiId para provisionar o recurso AWS::EC2::Instance. Para Linux, a condição é avaliada como falsa, e o CloudFormation usa o valor armazenado no LinuxAmiId para provisionar o recurso AWS::EC2::Instance.

Para obter mais informações sobre referência dinâmica, consulte Usar referências dinâmicas para especificar valores de modelo.

Informações relacionadas

Workshop sobre o CloudFormation: laboratório de referência dinâmico


AWS OFICIAL
AWS OFICIALAtualizada há 2 anos