Execução de atualizações seguras para o canário
As atualizações seguras para o canário do CloudWatch Synthetics possibilitam testar as atualizações em canários já existentes antes de aplicar as alterações. Esse recurso auxilia na validação da compatibilidade do canário com novas versões de runtime e outras alterações de configuração, como mudanças no código ou na memória. Isso contribui para minimizar possíveis interrupções no monitoramento causadas por atualizações incorretas.
Ao usar as atualizações seguras para o canário em relação às atualizações de versão do runtime, alterações de configuração e modificações no script de código, é possível mitigar riscos, manter o monitoramento ininterrupto, verificar as alterações antes da confirmação, realizar atualizações e reduzir o tempo de inatividade.
Pré-requisitos
Certifique-se de que os pré-requisitos foram atendidos.
Conta da AWS com permissões para o CloudWatch Synthetics
Canário existente em versões de runtime compatíveis (consulte Limitações para obter os runtimes compatíveis)
Inclusão de runtimes compatíveis ao realizar uma simulação (consulte Limitações para obter os runtimes compatíveis)
Práticas recomendadas
Confira, a seguir, algumas práticas recomendadas a serem seguidas ao executar um canário.
Realize uma simulação para validar a atualização do runtime
Execute simulações antes de aplicar atualizações no ambiente de produção no canário
Revise os logs e os artefatos do canário após uma simulação
Use simulações para validar a compatibilidade de dependências e de bibliotecas
Teste do canário por meio de uma simulação
Você pode testar a atualização do canário usando as seguintes opções:
Ao usar a opção “Editar fluxo de trabalho” do AWS Management Console
Acesse o console do CloudWatch Synthetics.
Selecione o canário que deseja atualizar.
No menu suspenso Ações, escolha Editar.
Atualize o canário com as alterações que deseja testar. Por exemplo, alteração da versão do runtime ou edição do código do script.
Em Script do canário, escolha Iniciar simulação para testar e visualizar os resultados imediatamente ou selecione Validar e salvar em outro momento, localizado na parte inferior da página, para iniciar o teste e visualizar os resultados posteriormente na página Detalhes do canário.
Após a simulação ser concluída com êxito, clique em Enviar para aplicar as atualizações no canário.
Ao usar o AWS Management Console para atualizar canários em um lote
Acesse o console do CloudWatch Synthetics.
Escolha a página com a lista Synthetics.
Selecione, no máximo, cinco canários nos quais deseja atualizar o runtime.
No menu suspenso Ações, selecione Atualizar runtime.
Escolha Iniciar simulação para novo runtime para começar a simulação e o teste das alterações antes de aplicar a atualização.
Na página com a lista Synthetics, será exibido um texto ao lado da versão do runtime do canário indicando o progresso da simulação. É válido ressaltar que isso só aparece para simulações relacionadas a atualizações de runtime.
Quando a simulação ocorrer com êxito, você receberá a mensagem Iniciar atualização.
Selecione Iniciar atualização para confirmar a atualização do runtime.
Se a simulação falhar, você receberá a mensagem Falha na simulação da atualização. Clique nessa mensagem para acessar o link de depuração disponível na página de detalhes do canário.
Ao usar a AWS CLI ou o SDK
A chamada de API começa uma simulação no canário chamado MyCanary
, aplicando a atualização da versão do runtime para syn-nodejs-puppeteer-10.0
.
aws synthetics start-canary-dry-run \ --name MyCanary \ --runtime-version syn-nodejs-puppeteer-10.0 // Or if you wanted to update other configurations: aws synthetics start-canary-dry-run \ --name MyCanary \ --execution-role-arn arn:aws:iam::123456789012:role/NewRole
A API retornará DryRunId
dentro do campo DryRunConfigOutput
.
Chame a operação GetCanary
com o DryRunId
fornecido para recuperar as configurações da simulação do canário. Um campo extra chamado DryRunConfig
estará presente, contendo o status da simulação, que é listado como LastDryRunExecutionStatus
.
aws synthetics get-canary \ --name MyCanary \ --dry-run-id XXXX-XXXX-XXXX-XXXX
Para obter mais detalhes, use GetCanaryRuns
com o DryRunId
fornecido para recuperar a execução e acessar informações adicionais.
aws synthetics get-canary-runs \ --name MyCanary \ --dry-run-id XXXX-XXXX-XXXX-XXXX
Uma vez que a simulação tenha sido realizada com êxito, é possível usar UpdateCanary
, informando o DryRunId
fornecido, para efetivar as alterações.
aws synthetics update-canary \ --name MyCanary \ --dry-run-id XXXX-XXXX-XXXX-XXXX
Se a simulação falhar por qualquer motivo, os detalhes estarão disponíveis no resultado de GetCanaryRuns
, que também indicará a localização dos artefatos com logs para depuração. Caso não existam logs, significa que a simulação falhou no momento da criação. Você pode validar isso ao usar GetCanary
.
aws synthetics get-canary \ --name MyCanary \ --dry-run-id XXXX-XXXX-XXXX-XXXX
Os campos State, StateReason e StateReasonCode exibem o status da simulação.
Como usar o AWS CloudFormation
No seu modelo de canário do Synthetics, inclua o campo DryRunAndUpdate
, que aceita um valor booleano, ou seja, true
ou false
.
Quando o valor está definido como true
, toda atualização executa uma simulação para validar as alterações antes de atualizar automaticamente o canário. Se a simulação falhar, o canário não será atualizado, e a implantação usando o AWS CloudFormation também falhará, com um motivo claro. Para realizar a depuração desse problema, use o console do AWS Synthetics ou, se estiver usando a API, recupere o valor ArtifactS3Location
usando a operação da API GetCanaryRuns
. Em seguida, faça o download dos arquivos *-log.txt
para analisar os registros em log da execução do canário em busca de erros. Após a validação, modifique o modelo do AWS CloudFormation e tente realizar a implantação novamente, ou use a API mencionada acima para realizar uma nova validação.
Quando o valor está definido como false
, o Synthetics não executará a simulação para validação das alterações e aplicará diretamente as atualizações.
Para obter mais informações sobre a solução de problemas relacionados à um canário com falha, consulte Solucionar problemas de um canário.
Um exemplo de modelo.
SyntheticsCanary: Type: 'AWS::Synthetics::Canary' Properties: Name: MyCanary RuntimeVersion: syn-nodejs-puppeteer-10.0 Schedule: {Expression: 'rate(5 minutes)', DurationInSeconds: 3600} ... DryRunAndUpdate: true
Limitações
Compatível com as versões de runtime: syn-nodejs-puppeteer-10.0+, syn-nodejs-playwright-2.0+ e syn-python-selenium-5.1+
É possível executar somente uma simulação por canário por vez
Quando uma simulação falha, não é possível atualizar o canário
A simulação não pode testar alterações no campo Programação
nota
Ao iniciar uma simulação com alterações no código para um canário baseado em Playwright, se você desejar atualizar o canário sem fornecer o DryRunId
associado, é necessário especificar explicitamente os parâmetros de código.