¿Cómo utilizo dinámicamente los parámetros almacenados en Systems Manager con una pila de AWS CloudFormation?

2 minutos de lectura
0

Tengo varios valores de parámetros almacenados en AWS Systems Manager Parameter Store. Quiero utilizar estos parámetros de forma dinámica en una pila de AWS CloudFormation en función de mis necesidades.

Descripción corta

La siguiente resolución utiliza Microsoft Windows y Linux como entornos de ejemplo para demostrar cómo utilizar distintos parámetros dinámicamente en una pila de CloudFormation.

Importante: Cuando utilice los siguientes comandos y plantillas, asegúrese de reemplazar Windows y Linux con sus requisitos.

Solución

1.    Abra la consola de AWS Systems Manager.

2.    En el panel de navegación, elija Parameter Store (Almacén de Parámetros).

3.    Cree parámetros de Systems Manager como tipo String para almacenar los ID de las imágenes de máquina de Amazon (AMI) para Linux o Windows.

Linux:

LinuxAmiId - AMI-Id-for-Linux-resources

-o-

Windows:

WindowsAmiId - AMI-Id-for-Windows-resources

Nota: Reemplace AMI-Id-for-Linux-resources y AMI-Id-for-Windows-resources por los ID de AMI de sus recursos.

4.    Utilice la siguiente plantilla de CloudFormation de ejemplo para crear el parámetro que seleccione la AMI que se va a utilizar para la implementación:

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

Nota: En la plantilla anterior, si se selecciona AmiToUse como ventanas, la condición CreateWindowsResources se evalúa como verdadera. CloudFormation utiliza el valor almacenado en WindowsAmiId para aprovisionar el recurso de AWS::EC2::Instance. Para Linux, la condición se evalúa como falsa y CloudFormation utiliza el valor almacenado en LinuxAmiId para aprovisionar el recurso de AWS::EC2::Instance.

Para obtener más información sobre las referencias dinámicas, consulte Utilización de referencias dinámicas para especificar valores de plantilla.

Información relacionada

Workshop de CloudFormation: laboratorio de referencia dinámico


OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años