Como faço para iniciar atualizações contínuas quando não há alterações na configuração de inicialização no CloudFormation?

2 minuto de leitura
0

Quero iniciar atualizações contínuas em meu grupo do Auto Scaling em cada atualização da pilha do AWS CloudFormation, sem modificar a configuração de inicialização.

Breve descrição

Você pode iniciar atualizações contínuas para um grupo do Auto Scaling somente se atender às condições específicas do atributo UpdatePolicy.

Para iniciar atualizações contínuas, você pode criar um parâmetro de alternância na configuração de inicialização do seu modelo do CloudFormation. No entanto, se você alterar o valor do parâmetro de alternância durante uma atualização da pilha, a propriedade UserData será modificada. Qualquer modificação em UserData requer substituição. O CloudFormation detecta a modificação em UserData e, em seguida, substitui o recurso LaunchConfiguration. Essa substituição inicia a atualização contínua do Auto Scaling, conforme definido pelo atributo UpdatePolicy.

Resolução

As etapas a seguir pressupõem que sua política de AutoScalingRollingUpdate esteja configurada para seu grupo do Auto Scaling e que seu grupo do Auto Scaling esteja configurado para fazer referência a LaunchConfiguration.

Importante: certifique-se de não interromper outros elementos na propriedade UserData ao adicionar o parâmetro de alternância ao seu modelo. Além disso, não adicione o parâmetro de alternância antes de cfn-signal.

1.    Em seu modelo do CloudFormation, defina Toggle como o parâmetro.

JSON:

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

YAML:

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

2.    Na configuração de inicialização do seu modelo, faça referência ao parâmetro de alternância na propriedade UserData e, em seguida, inicie sua pilha. Veja os seguintes exemplos de JSON e 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 atualizações contínuas ao atualizar sua pilha, altere o valor do parâmetro de verdadeiro para falso ou de falso para verdadeiro, dependendo da configuração inicial.

Observação: você pode usar a solução do parâmetro de alternância em propriedades nas quais uma atualização requer substituição, como LaunchConfigurationName, e para recursos como AWS::EC2::LaunchTemplate.


AWS OFICIAL
AWS OFICIALAtualizada há 2 anos