Esecuzione di aggiornamenti sicuri sul canary
Gli aggiornamenti sicuri sul canary di CloudWatch Synthetics ti consentono di testare gli aggiornamenti sui tuoi canary esistenti prima di applicare le modifiche. Questa funzionalità consente di convalidare la compatibilità del canary con 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 aggiornamenti sicuri sul canary per gli aggiornamenti delle versioni di runtime, i cambiamenti alla configurazione e le modifiche agli script di codice, hai la possibilità di ridurre i rischi, mantenere un monitoraggio ininterrotto, verificare le modifiche prima di eseguire il commit, apportare aggiornamenti e ridurre il tempo di inattività.
Argomenti
Prerequisiti
Assicurati che i prerequisiti siano completi.
Account AWS con autorizzazioni CloudWatch Synthetics
Canary esistente nelle versioni di runtime supportate (consulta Limitazioni per i runtime compatibili)
Includi i runtime compatibili quando esegui un processo di test (vedi Limitazioni per i runtime compatibili)
Best practice
Di seguito sono indicate alcune best practice da seguire durante l'esecuzione di un canary.
Eseguire un processo di test per convalidare un aggiornamento di runtime
Eseguire un processo di test prima di applicare aggiornamenti in produzione al canary
Esaminare i log e gli artefatti del canary dopo un processo di test
Usare processi di test per convalidare le dipendenze e la compatibilità delle librerie
Esecuzione di test dei canary usando un processo di test
Puoi testare l'aggiornamento del canary utilizzando le seguenti opzioni:
Utilizzo del flusso di lavoro Modifica della Console di gestione AWS
Vai alla console di CloudWatch Synthetics.
Seleziona il canary che desideri aggiornare.
Dal menu a discesa Azioni, scegli Modifica.
Aggiorna il canary con le modifiche che desideri testare. Ad esempio, cambiando la versione di runtime o modificando il codice dello script.
In Canary script, scegli Avvia processo di test 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 del canary.
Una volta completato il processo di test, scegli Invia per confermare gli aggiornamenti del canary.
Utilizzo della Console di gestione AWS per aggiornare i canary in un batch
Vai alla console di CloudWatch Synthetics.
Scegli la pagina dell'elenco Synthetics.
Seleziona fino a cinque canary per cui desideri aggiornare il runtime.
Dal menu a discesa Azioni, scegli Aggiorna Runtime.
Scegli Avvia processo di test per nuovo runtime per avviare il processo di test e provare le modifiche prima di un aggiornamento.
Nella pagina dell'elenco di Synthetics, vedrai un testo accanto alla versione di Runtime per il canary che mostra l'avanzamento del processo di test (questo viene visualizzato solo per i processi di test che richiedono un aggiornamento del runtime).
Una volta completato il processo di test, verrà visualizzato il testo Avvia l'aggiornamento.
Scegli Avvia l'aggiornamento per confermare l'aggiornamento del runtime.
Se il processo di test non riesce, verrà visualizzato il testo Processo di test dell'aggiornamento non riuscito. Scegli il testo per visualizzare il collegamento di debug alla pagina dei dettagli del canary.
Utilizzo della CLI AWS o dell'SDK
L'API avvia il processo di test per il nome canary 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 DryRunId all'interno di DryRunConfigOutput.
Chiama GetCanary con il DryRunId fornito per ricevere le configurazioni del processo di test del canary e un campo aggiuntivo DryRunConfig che contiene lo stato del processo di test elencato come LastDryRunExecutionStatus.
aws synthetics get-canary \ --name MyCanary \ --dry-run-id XXXX-XXXX-XXXX-XXXX
Per maggiori dettagli, utilizza GetCanaryRuns con il DryRunId fornito per recuperare l'esecuzione e altre informazioni.
aws synthetics get-canary-runs \ --name MyCanary \ --dry-run-id XXXX-XXXX-XXXX-XXXX
Dopo un processo di test riuscito, puoi utilizzare UpdateCanary con il DryRunId fornito per confermare le modifiche.
aws synthetics update-canary \ --name MyCanary \ --dry-run-id XXXX-XXXX-XXXX-XXXX
Quando invece non riesce per qualsiasi motivo (il risultato di GetCanaryRuns mostrerà i dettagli), il risultato di GetCanaryRuns indica una posizione dell'artefatto che contiene i log sui quali eseguire il debug. Quando non sono presenti log, significa che il processo di test non è stato creato. È possibile effettuare la convalida utilizzando GetCanary.
aws synthetics get-canary \ --name MyCanary \ --dry-run-id XXXX-XXXX-XXXX-XXXX
State, StateReason e StateReasonCode mostrano lo stato del processo di test.
Uso di CloudFormation
Nel tuo modello per un canary Synthetics, fornisci il campo DryRunAndUpdate che accetta un valore booleano true o false.
Quando il valore è true ogni aggiornamento esegue un processo di test per convalidare le modifiche prima di aggiornare automaticamente il canary. Quando il processo di test non riesce, il canary non si aggiorna e interrompe sia l'implementazione, sia l'implementazione CloudFormation per un motivo valido. Per eseguire il debug di questo problema, usa la console AWS Synthetics oppure, se stai utilizzando un'API, ottieni l'ArtifactS3Location tramite l'API GetCanaryRuns e scarica i file *-log.txt per esaminare i log di esecuzione del canary alla ricerca di eventuali errori. Dopo la convalida, modifica il modello CloudFormation e riprova l'implementazione o utilizza l'API sopra riportata per la convalida.
Quando il valore è false, Synthetics non eseguirà un processo di test per convalidare le modifiche ma effettuerà direttamente il commit degli aggiornamenti.
Per informazioni sulla risoluzione dei problemi con un canary non eseguito, 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 syn-python-selenium-5.1+
Puoi eseguire un solo processo di test alla volta per ciascun canary
Quando un processo di test non riesce, non è possibile aggiornare il canary
Il processo di test non può valutare alcuna modifica del campo Pianifica
Nota
Quando si avvia un processo di test con modifiche al codice per un canary Playwright e si desidera aggiornare il canary senza fornire il DryRunId relativo, è necessario specificare esplicitamente i parametri del codice.