¿Cómo inicio las actualizaciones continuas cuando no hay cambios en la configuración de lanzamiento en CloudFormation?

2 minutos de lectura
0

Quiero iniciar actualizaciones continuas en mi grupo de escalamiento automático en cada actualización de la pila de AWS CloudFormation, sin modificar la configuración de lanzamiento.

Breve descripción

Puede iniciar actualizaciones continuas para un grupo de escalamiento automático solo si cumple con las condiciones específicas del atributo UpdatePolicy.

Para iniciar actualizaciones continuas, puede crear un parámetro de alternancia en la configuración de lanzamiento de la plantilla de CloudFormation. Sin embargo, si cambia el valor del parámetro de alternancia durante una actualización de la pila, se modificará la propiedad UserData. Toda modificación en UserData requiere un reemplazo. CloudFormation detecta la modificación en UserData y, a continuación, reemplaza el recurso LaunchConfiguration. Este reemplazo inicia la actualización continua de escalamiento automático, tal como se define en el atributo UpdatePolicy.

Resolución

En los pasos siguientes se supone que la política AutoScalingRollingUpdate está configurada para el grupo de escalamiento automático, y que el grupo de escalamiento automático está configurado para hacer referencia a LaunchConfiguration.

Importante: Asegúrese de no alterar otros elementos de la propiedad UserData al añadir el parámetro de alternancia a la plantilla. Además, no añada el parámetro de alternancia antes de cfn-signal.

1.    En la plantilla de CloudFormation, defina Toggle como parámetro.

JSON:

"Parameters": {
        "Toggle": {
            "Type": "String",
            "AllowedValues": ["true","false"],
            "Default": "true"
        }
    }

YAML:

Parameters:
  Toggle:
    Type: String
    AllowedValues:
      - 'true'
      - 'false'
    Default: 'true'

2.    En la configuración de lanzamiento de la plantilla, haga referencia al parámetro de alternancia de la propiedad UserData y, a continuación, inicie la pila. Consulte los siguientes ejemplos de JSON y YAML.

JSON:

"LaunchConfig" : {
  "Type" : "AWS::AutoScaling::LaunchConfiguration",
  "Properties" : {
     "ImageId" : { "Ref" : "ImageID" },
     "UserData" : { "Fn::Base64" : { "Ref" : "Toggle" }
         ...
         ...
     },        
  "InstanceType" : { "Ref" : "Type" }
  }
}

YAML:

LaunchConfig:
  Type: 'AWS::AutoScaling::LaunchConfiguration'
  Properties:
    ImageId: !Ref ImageID
    UserData:
      'Fn::Base64': !Ref Toggle
      ...
      ...
    InstanceType: !Ref Type

Importante: Para iniciar las actualizaciones continuas al actualizar la pila, cambie el valor del parámetro de true a false o de false a true, según su configuración inicial.

Nota: Puede utilizar la solución del parámetro de alternancia en las propiedades en las que sea necesario reemplazar una actualización, como LaunchConfigurationName, y para recursos como AWS::EC2::LaunchTemplate.


OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años