Effectuer des mises à jour sécurisées des scripts Canary - Amazon CloudWatch

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Effectuer des mises à jour sécurisées des scripts Canary

CloudWatch Synthetics Safe Canary Updates vous permet de tester les mises à jour sur vos canaris existants avant d'appliquer les modifications. Cette fonctionnalité vous aide à valider la compatibilité du script Canary avec les nouvelles versions d’exécution ainsi qu’avec d’autres modifications de configuration, comme les modifications de code ou de mémoire. Cela permet de réduire au minimum les risques de perturbations du suivi de surveillance en cas d’erreur lors des mises à jour.

Grâce aux mises à jour sécurisées des scripts Canary, vous pouvez tester les mises à jour de version d’exécution, vérifier les modifications de configuration, valider les modifications de code, réduire les risques d’erreur, maintenir une surveillance continue et réduire au minimum la durée d’indisponibilité.

Conditions préalables

Assurez-vous que les prérequis sont remplis.

  • AWS compte avec CloudWatch autorisations synthétiques

  • Script Canary existant utilisant une version d’exécution prise en charge (consultez Limitations pour les versions d’exécution compatibles)

  • Utilisation des versions d’exécution compatibles lors des tests à blanc (consultez Limitations pour la liste des versions d’exécution compatibles)

Bonnes pratiques

Voici quelques bonnes pratiques à suivre lorsque vous exécutez un script Canary.

  • Effectuez un test à blanc avant de mettre à jour la version d’exécution

  • Effectuez des tests à blanc avant toute mise à jour en production du script Canary

  • Examinez les journaux et artefacts du script Canary après un test à blanc

  • Utilisez les tests à blanc pour valider les dépendances et la compatibilité des bibliothèques

Test d’un script Canary à l’aide d’un test à blanc

Vous pouvez tester la mise à jour du script Canary à l’aide des options suivantes :

Utilisation du flux de travail AWS Management Console's Edit

  1. Va sur la CloudWatch console en synthétique.

  2. Sélectionnez le script Canary que vous souhaitez mettre à jour.

  3. Dans le menu déroulant Actions, sélectionnez Modifier.

    Mettez à jour le script Canary avec les modifications que vous voulez tester. Par exemple, modifier la version d’exécution ou modifier le code du script.

  4. Sous Script Canary, sélectionnez Démarrer un test à blanc pour lancer immédiatement le test et en afficher les résultats, ou sélectionnez Valider et enregistrer plus tard en bas de la page pour lancer le test et consulter les résultats ultérieurement sur la page Détails du script Canary.

  5. Une fois le test à blanc réussi, sélectionnez Soumettre pour valider les mises à jour de votre script Canary.

Utilisation du AWS Management Console pour mettre à jour les canaris par lots

  1. Va sur la CloudWatch console en synthétique.

  2. Accédez à la page de liste Synthetics.

  3. Sélectionnez jusqu’à cinq scripts Canary dont vous souhaitez mettre à jour la version d’exécution.

  4. Dans le menu déroulant Actions, sélectionnez Mettre à jour la version d’exécution.

  5. Sélectionnez Démarrer un test à blanc pour la nouvelle exécution pour exécuter le test et valider vos modifications avant la mise à jour.

  6. Sur la page de liste Synthetics, un texte s’affiche à côté de la version Exécution du script Canary pour indiquer la progression du test à blanc (ce texte n’apparaît que pour les tests liés à une mise à jour de version d’exécution).

    Une fois le test à blanc réussi, le texte Lancer la mise à jour s’affiche.

  7. Sélectionnez Lancer la mise à jour pour valider la mise à jour de la version d’exécution.

  8. Si le test à blanc échoue, le texte Échec du test à blanc de mise à jour s’affiche. Sélectionnez ce texte pour ouvrir le lien de débogage vers la page de détails du script Canary.

Utilisation de la AWS CLI ou du SDK

L’API lance le test à blanc pour le nom de script Canary fourni MyCanary et met à jour la version d’exécution vers 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 renvoie le DryRunId dans la DryRunConfigOutput.

Appelez GetCanary avec le DryRunId fourni pour obtenir la configuration du test à blanc du script Canary ainsi qu’un champ supplémentaire DryRunConfig indiquant l’état du test à blanc, affiché sous forme de LastDryRunExecutionStatus.

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

Pour plus de détails, utilisez GetCanaryRuns avec le DryRunId fourni pour extraire les informations d’exécution et les détails supplémentaires.

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

Après un test à blanc réussi, vous pouvez ensuite utiliser UpdateCanary avec le DryRunId correspondant pour valider définitivement vos modifications.

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

En cas d'échec pour quelque raison que ce soit (le résultat de GetCanaryRuns contiendra les détails), l'emplacement du résultat GetCanaryRuns contient un artefact contenant les journaux à déboguer. S’il n’y a aucun journal, cela signifie que le test à blanc n’a pas pu être créé. Vous pouvez valider en utilisant GetCanary.

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

L'état StateReason, et StateReasonCodeaffiche l'état du cycle à sec.

En utilisant CloudFormation

Dans votre modèle de script Canary Synthetics, ajoutez le champ DryRunAndUpdate, qui accepte une valeur booléenne true ou false.

Lorsque la valeur est true, chaque mise à jour exécute automatiquement un test à blanc afin de valider les modifications avant de mettre à jour le script Canary. Lorsque le dry run échoue, Canary ne se met pas à jour et échoue au déploiement et CloudFormation au déploiement pour une raison valable. Pour déboguer ce problème, utilisez la console AWS  Synthetics ou, si vous utilisez une API, récupérez le ArtifactS3Location à l’aide de l’API GetCanaryRuns, puis téléchargez les fichiers *-log.txt afin d’examiner les journaux d’exécution du script Canary et identifier les erreurs. Après validation, modifiez le CloudFormation modèle et réessayez le déploiement ou utilisez l'API ci-dessus pour valider.

Lorsque la valeur est false, Synthetics n’exécute pas de test à blanc pour valider les modifications et applique directement vos mises à jour.

Pour plus d’informations sur la résolution des défaillances d’un script Canary, consultez Dépannage d'un script Canary ayant échoué.

Exemple de modèle .

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

Limitations

  • Supporte les versions d'exécution : syn-nodejs-puppeteer -10.0+, syn-nodejs-playwright -2.0+, -5.1+ et syn-nodejs-3.0+ syn-python-selenium

  • Vous ne pouvez exécuter qu’un seul test à blanc à la fois par script Canary

  • Si un test à blanc échoue, il est impossible de mettre à jour le script Canary

  • Le test à blanc ne peut pas valider les modifications apportées au champ Planification

Note

Lorsque vous lancez un test à blanc avec des modifications de code pour un script Canary Playwright, et que vous souhaitez mettre à jour le script sans fournir le DryRunId associé, vous devez spécifier explicitement les paramètres du code.