Esecuzione di aggiornamenti sicuri su Canary - Amazon CloudWatch

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esecuzione di aggiornamenti sicuri su Canary

CloudWatch synthetics safe canary updates ti consente di testare gli aggiornamenti sui tuoi canarini esistenti prima di applicare le modifiche. Questa funzionalità consente di convalidare la compatibilità di Canary con i nuovi runtime e altre modifiche alla configurazione, come modifiche al codice o alla memoria. Ciò contribuirà a ridurre al minimo le potenziali interruzioni del monitoraggio causate da aggiornamenti errati.

Utilizzando Canary Safe Updates sugli aggiornamenti delle versioni di runtime, sulle modifiche alla configurazione e sulle modifiche degli script di codice, puoi mitigare i rischi, mantenere un monitoraggio ininterrotto, verificare le modifiche prima di eseguire il commit, aggiornare e ridurre i tempi di inattività.

Prerequisiti

Assicurati che i prerequisiti siano completi.

  • AWS account con autorizzazioni sintetiche CloudWatch

  • Canary esistente nelle versioni di runtime supportate (vedi Limitazioni per i runtime compatibili)

  • Includi i runtime compatibili quando esegui un funzionamento a secco (vedi Limitazioni per i runtime compatibili)

Best practice

Ecco alcune buone pratiche da seguire durante l'esecuzione di un canarino.

  • Esegui un dry run per convalidare un aggiornamento di runtime

  • Esegui cicli a secco prima dell'aggiornamento della produzione a canary

  • Esamina i tronchi e i manufatti dei canarini dopo un ciclo a secco

  • Usa dry run per convalidare le dipendenze e la compatibilità delle librerie

Testare Canary usando dry run

Puoi testare l'aggiornamento Canary utilizzando le seguenti opzioni:

Utilizzo del flusso AWS Management Console di lavoro «Modifica»

  1. Vai alla console di CloudWatch sintesi.

  2. Seleziona il canarino che desideri aggiornare.

  3. Dal menu a discesa Azioni, scegli Modifica.

    Aggiorna il canarino con le modifiche che desideri testare. Ad esempio, cambiando la versione di runtime o modificando il codice dello script.

  4. In Canary script, scegli Avvia Dry Run per testare e visualizzare immediatamente i risultati oppure scegli Convalida e salva più tardi nella parte inferiore della pagina per iniziare il test e visualizzare i risultati più avanti nella pagina dei dettagli di Canary.

  5. Una volta completata la prova a secco, scegli Invia per confermare gli aggiornamenti di Canary.

Utilizzo di AWS Management Console per aggiornare i canarini in un batch

  1. Vai alla console di CloudWatch sintesi.

  2. Scegliete la pagina dell'elenco Synthetics.

  3. Seleziona fino a cinque canarini di cui desideri aggiornare il runtime.

  4. Dal menu a discesa Azioni, scegli Update Runtime.

  5. Scegli Start dry run for new runtime per avviare il dry run e testare le modifiche prima di un aggiornamento.

  6. Nella pagina dell'elenco Synthetics, vedrai un testo accanto alla versione Runtime per il canary che mostra l'avanzamento della corsa a secco (questo viene visualizzato solo per le corse a secco che richiedono un aggiornamento del runtime).

    Una volta completata l'operazione a secco, verrà visualizzato il testo Initiate Update.

  7. Scegli Avvia aggiornamento per confermare l'aggiornamento del runtime.

  8. Se l'esecuzione a secco non riesce, verrà visualizzato il testo Update dry run failed. Scegli il testo per visualizzare il link di debug alla pagina dei dettagli di Canary.

Utilizzo della AWS CLI o dell'SDK

L'API avvia l'esecuzione a secco per il nome canarino fornito MyCanary e aggiorna la versione di runtime a. 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

L'API restituirà il file DryRunId interno diDryRunConfigOutput.

Chiama GetCanary con il modulo fornito DryRunId per ricevere le configurazioni di funzionamento a secco di Canary e un campo aggiuntivo DryRunConfig che contiene lo stato della corsa a secco elencata come. LastDryRunExecutionStatus

aws synthetics get-canary \ --name MyCanary \ --dry-run-id XXXX-XXXX-XXXX-XXXX

Per maggiori dettagli, utilizza GetCanaryRuns il comando fornito DryRunId per recuperare la corsa e altre informazioni.

aws synthetics get-canary-runs \ --name MyCanary \ --dry-run-id XXXX-XXXX-XXXX-XXXX

Dopo un corretto funzionamento a secco, è possibile utilizzare l'UpdateCanaryunità fornita DryRunId in dotazione per confermare le modifiche.

aws synthetics update-canary \ --name MyCanary \ --dry-run-id XXXX-XXXX-XXXX-XXXX

Quando fallisce per qualsiasi motivo (result from GetCanaryRuns avrà i dettagli), il risultato GetCanaryRuns ha una posizione nell'artefatto che contiene i log di cui eseguire il debug. Quando non ci sono registri, il dry run non è stato creato. È possibile convalidare utilizzando. GetCanary

aws synthetics get-canary \ --name MyCanary \ --dry-run-id XXXX-XXXX-XXXX-XXXX

Lo stato StateReason, e StateReasonCodevisualizza lo stato del funzionamento a secco.

Utilizzando AWS CloudFormation

Nel tuo modello per Synthetics Canary, fornisci il DryRunAndUpdate campo che accetta un valore booleano o. true false

quando il valore è, true ogni aggiornamento esegue un dry run per convalidare le modifiche prima di aggiornare automaticamente il canary. Quando il dry run fallisce, Canary non si aggiorna e fallisce la distribuzione e la distribuzione per un AWS CloudFormation motivo valido. Per eseguire il debug di questo problema, usa la AWS console Synthetics o, se utilizzi un'API, scarica ArtifactS3Location l'API e scarica i file per esaminare GetCanaryRuns le esecuzioni di *-log.txt canary log alla ricerca di errori. Dopo la convalida, modifica il AWS CloudFormation modello e riprova la distribuzione o utilizza l'API sopra riportata per la convalida.

Quando il valore è 0false, synthetics non eseguirà un'operazione a secco per convalidare le modifiche e invierà direttamente gli aggiornamenti.

Per informazioni sulla risoluzione dei problemi relativi a un canarino guasto, consulta. Risoluzione dei problemi di un canary fallito

Un modello di esempio.

SyntheticsCanary: Type: 'AWS::Synthetics::Canary' Properties: Name: MyCanary RuntimeVersion: syn-nodejs-puppeteer-10.0 Schedule: {Expression: 'rate(5 minutes)', DurationInSeconds: 3600} ... DryRunAndUpdate: true

Limitazioni

  • Supporta le versioni di runtime: syn-nodejs-puppeteer -10.0+, syn-nodejs-playwright -2.0+ e -5.1+ syn-python-selenium

  • Puoi eseguire solo una corsa a secco per canarino alla volta

  • Quando una corsa a secco fallisce, non è possibile aggiornare il canarino

  • Dry run non può testare alcuna modifica del campo Schedule

Nota

Quando si avvia un dry run con modifiche al codice per un Playwright Canary e si desidera aggiornare il canary senza fornire i relativi parametriDryRunId, è necessario specificare esplicitamente i parametri del codice.