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 de 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 permet de valider la compatibilité de Canary avec les nouveaux temps d'exécution et les autres modifications de configuration telles que les modifications du code ou de la mémoire. Cela permettra de minimiser les perturbations de surveillance potentielles causées par des mises à jour erronées.
En utilisant les mises à jour sécurisées de Canary pour les mises à jour des versions d'exécution, les modifications de configuration et les modifications de scripts de code, vous pouvez atténuer les risques, maintenir une surveillance ininterrompue, vérifier les modifications avant de les valider, les mettre à jour et réduire les temps d'arrêt.
Prérequis
Assurez-vous que les prérequis sont remplis.
AWS compte avec CloudWatch autorisations synthétiques
Canary existant sur les versions d'exécution prises en charge (voir Limites pour les environnements d'exécution compatibles)
Incluez les durées d'exécution compatibles lors d'une exécution à sec (voir Limites pour les durées d'exécution compatibles)
Bonnes pratiques
Voici quelques bonnes pratiques à suivre lors de l'exécution d'un canari.
Exécuter un essai à sec pour valider une mise à jour d'exécution
Effectuez des essais à sec avant les mises à jour de production de Canary
Passez en revue les bûches et les artefacts des canaris après un séchage
Utilisez des essais à sec pour valider les dépendances et la compatibilité des bibliothèques
Tester Canary en utilisant un essai à sec
Vous pouvez tester la mise à jour de Canary en utilisant les options suivantes :
Utilisation du flux de travail AWS Management Console's Edit
Va sur la CloudWatch console synthétique.
Sélectionnez le canari que vous souhaitez mettre à jour.
Dans le menu déroulant Actions, sélectionnez Modifier.
Mettez à jour le canari avec les modifications que vous souhaitez tester. Par exemple, modifier la version d'exécution ou modifier le code du script.
Dans le script Canary, choisissez Start Dry Run pour tester et afficher les résultats immédiatement ou choisissez Valider et enregistrer plus tard au bas de la page pour démarrer le test et afficher les résultats ultérieurement sur votre page de détails Canary.
Une fois le test réussi, choisissez Soumettre pour valider vos mises à jour Canary.
Utilisation du AWS Management Console pour mettre à jour les canaris par lots
Va sur la CloudWatch console synthétique.
Choisissez la page de liste des Synthetics.
Sélectionnez jusqu'à cinq canaris pour lesquels vous souhaitez mettre à jour le moteur d'exécution.
Dans le menu déroulant Actions, sélectionnez Update Runtime.
Choisissez Start dry run pour une nouvelle durée d'exécution afin de démarrer l'essai à sec et de tester vos modifications avant une mise à jour.
Sur la page de liste des Synthetics, vous verrez un texte à côté de la version Runtime for the Canary qui affiche la progression du cycle à sec (ceci n'est affiché que pour les essais à sec impliquant une mise à jour d'exécution).
Une fois le cycle de séchage réussi, vous verrez un texte d'initiation de mise à jour.
Choisissez Initiate Update pour valider la mise à jour d'exécution.
En cas d'échec de la mise à jour à sec, un message indiquant l'échec de la mise à jour à sec s'affiche. Choisissez le texte pour afficher le lien de débogage vers la page de détails de Canary.
Utilisation de la AWS CLI ou du SDK
L'API lance l'exécution à sec pour le nom canari fourni MyCanary
et met à jour la version d'exécution ensyn-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 renverra l'DryRunId
intérieur duDryRunConfigOutput
.
Appelez GetCanary
avec le formulaire fourni DryRunId
pour recevoir les configurations de cycle à sec du Canary et un champ supplémentaire DryRunConfig
contenant l'état du cycle à sec répertorié commeLastDryRunExecutionStatus
.
aws synthetics get-canary \ --name MyCanary \ --dry-run-id XXXX-XXXX-XXXX-XXXX
Pour plus de détails, utilisez GetCanaryRuns
le code fourni DryRunId
pour récupérer la course et des informations supplémentaires.
aws synthetics get-canary-runs \ --name MyCanary \ --dry-run-id XXXX-XXXX-XXXX-XXXX
Après un séchage réussi, vous pouvez ensuite l'utiliser UpdateCanary
avec le logiciel fourni DryRunId
afin de valider 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. En l'absence de journaux, le cycle à sec n'a pas pu être créé. Vous pouvez valider en utilisantGetCanary
.
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 AWS CloudFormation
Dans votre modèle pour un Synthetics Canary, indiquez le DryRunAndUpdate
champ qui accepte une valeur booléenne ou. true
false
lorsque la valeur est égale à true
chaque mise à jour, exécute un essai à sec pour valider les modifications avant de mettre automatiquement à jour le canari. Lorsque le dry run échoue, Canary ne se met pas à jour et échoue au déploiement et AWS CloudFormation au déploiement pour une raison valable. Pour résoudre ce problème, utilisez la console AWS Synthetics ou, si vous utilisez une API, procurez-vous l'API et téléchargez ArtifactS3Location
les fichiers pour vérifier GetCanaryRuns
la présence d'erreurs *-log.txt
dans les exécutions de Canary Log. Après validation, modifiez le AWS CloudFormation modèle et réessayez le déploiement ou utilisez l'API ci-dessus pour valider.
Lorsque cette valeur est définiefalse
, Synthetics n'exécutera pas de test pour valider les modifications et validera directement vos mises à jour.
Pour plus d'informations sur le dépannage d'un Canary défaillant, consultezDé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
Limites
Supporte les versions d'exécution : syn-nodejs-puppeteer -10.0+, -2.0+ et syn-nodejs-playwright -5.1+ syn-python-selenium
Vous ne pouvez exécuter qu'un seul essai à sec par canari à la fois
En cas d'échec d'un essai à sec, vous ne pouvez pas mettre à jour le canari
Dry Run ne permet pas de tester les modifications des champs de planification
Note
Lorsque vous lancez une version à sec avec des modifications de code pour un canari Playwright et que vous souhaitez mettre à jour le canari sans fournir le code associéDryRunId
, vous devez spécifier explicitement les paramètres du code.