Como faço para implantar atualizações contínuas no meu grupo do Auto Scaling quando não há alterações no modelo de inicialização no CloudFormation?
Quero atualizações contínuas em meu grupo do Auto Scaling do Amazon Elastic Compute Cloud (Amazon EC2) em cada atualização de pilha do AWS CloudFormation. Não quero alterar o modelo de inicialização toda vez.
Resolução
Para implantar atualizações contínuas para um grupo do Auto Scaling, use o atributo UpdatePolicy.
Na configuração de execução do modelo do CloudFormation, é uma prática recomendada referenciar o parâmetro Toggle na propriedade UserData do tipo de recurso AWS::EC2::LaunchTemplate. Ao alterar o valor de Toggle, por exemplo, de verdadeiro para falso, durante uma atualização de pilha, altere a propriedade de UserData. Essa ação faz com que o CloudFormation crie uma nova versão do modelo de inicialização.
A resolução a seguir pressupõe que você configurou a política AutoScalingRollingUpdate para o grupo do Auto Scaling e configurou este para fazer referência a AWS::EC2::LaunchTemplate.
Importante: certifique-se de não interromper outros elementos na propriedade UserData ao adicionar o parâmetro Toggle ao seu modelo.
Para configurar atualizações contínuas, conclua as seguintes etapas:
-
Em seu modelo do CloudFormation, defina Toggle como parâmetro.
Para um arquivo JSON, insira o seguinte código:"Parameters": { "Toggle": { "Type": "String", "AllowedValues": [ "true", "false" ], "Default": "true", "Description": "Toggle parameter to force ASG update" } }
Para um arquivo YAML, insira o seguinte código:
Parameters: Toggle: Type: String AllowedValues: - 'true' - 'false' Default: 'true' Description: 'Toggle parameter to force ASG update'
-
Na configuração de execução do modelo, faça referência ao parâmetro Toggle na propriedade UserData.
Exemplo 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" } } }
Exemplo 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
-
Para implantar atualizações contínuas, altere o valor do parâmetro Toggle de verdadeiro para falso ou de falso para verdadeiro, dependendo da configuração atual.
Observação: você também pode usar a resolução anterior em propriedades em que uma atualização exige uma substituição, como LaunchTemplateName.
Conteúdo relevante
- AWS OFICIALAtualizada há 5 anos
- AWS OFICIALAtualizada há 3 anos