Al usar AWS re:Post, aceptas las AWS re:Post Términos de uso

¿Cómo inicio las actualizaciones continuas en mi grupo de escalamiento automático si no hay cambios en la plantilla de lanzamiento en CloudFormation?

3 minutos de lectura
0

Quiero recibir actualizaciones continuas en mi grupo de escalamiento automático de Amazon Elastic Compute Cloud (Amazon EC2) en cada actualización de la pila de AWS CloudFormation. No quiero modificar la plantilla de lanzamiento cada vez.

Resolución

Para iniciar actualizaciones continuas para un grupo de escalamiento automático, usa el atributo UpdatePolicy.

En la configuración de lanzamiento de la plantilla de CloudFormation, se recomienda hacer referencia al parámetro Toggle de la propiedad UserData de tu tipo de recurso AWS::EC2::LaunchTemplate. Cuando cambias el valor de Toggle (por ejemplo, de true a false) durante una actualización de la pila, modificas la propiedad UserData. Esta acción pide a CloudFormation que cree una nueva versión de la plantilla de lanzamiento.

La siguiente resolución presupone que has configurado la política AutoScalingRollingUpdate para el grupo de escalamiento automático y que has configurado el grupo de escalamiento automático para que haga referencia a AWS::EC2::LaunchTemplate.

Importante: Asegúrate de no alterar otros elementos de la propiedad UserData al añadir el parámetro Toggle a la plantilla.

Para configurar las actualizaciones continuas, sigue estos pasos:

  1. En la plantilla de CloudFormation, define Toggle como parámetro.
    Para un archivo JSON, introduce el siguiente código:

        "Parameters": {
            "Toggle": {
                "Type": "String",
                "AllowedValues": [
                    "true",
                    "false"
                ],
                "Default": "true",
                "Description": "Toggle parameter to force ASG update"
            }
        }

    Para un archivo YAML, introduce el siguiente código:

    Parameters:
      Toggle:
        Type: String
        AllowedValues:
          - 'true'
          - 'false'
        Default: 'true'
        Description: 'Toggle parameter to force ASG update'
  2. En la configuración de lanzamiento de la plantilla, haz referencia al parámetro Toggle de la propiedad UserData.
    Ejemplo de JSON:

            "LaunchTemplate": {
                "Type": "AWS::EC2::LaunchTemplate",
                "Properties": {
                    "LaunchTemplateData": {
                        "ImageId": { "Ref": "ImageId" },
                        "UserData": {
                            "Fn::Base64": {
                                "Fn::Join": [
                                    "",
                                    [
                                        "#!/bin/bash\n",
                                        "echo \"Toggle parameter is set to ",
                                        {
                                            "Ref": "Toggle"
                                        },
                                        "\"\n"
                                        ...
                                        ...
                                    ]
                                ]
                            }
                        },
                        "InstanceType": { "Ref": "InstanceType" }
                    }
                }

    Ejemplo de YAML:

      LaunchTemplate:
        Type: AWS::EC2::LaunchTemplate
        Properties:
          LaunchTemplateData:
            ImageId: !Ref ImageId
            UserData:
              Fn::Base64:
                !Sub |
                  #!/bin/bash
                  echo "Toggle parameter is set to ${Toggle}"
                  ...
                  ...
            InstanceType: !Ref InstanceType
  3. Crea la pila.

  4. Para iniciar las actualizaciones, cambia el valor del parámetro Toggle de true a false o de false a true, según su configuración actual.

Nota: También puedes usar la resolución anterior en propiedades en las que una actualización requiere un reemplazo, como LaunchTemplateName.

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 meses