

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
<a name="performing-safe-canary-upgrades"></a>

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é.

**Topics**
+ [

## Conditions préalables
](#performing-safe-canary-upgrades-prereq)
+ [

## Bonnes pratiques
](#performing-safe-canary-upgrades-best-practices)
+ [

## Test d’un script Canary à l’aide d’un test à blanc
](#performing-safe-canary-upgrades-getting-started)
+ [

## Limitations
](#performing-safe-canary-upgrades-limitations)

## Conditions préalables
<a name="performing-safe-canary-upgrades-prereq"></a>

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](#performing-safe-canary-upgrades-limitations) pour les versions d’exécution compatibles)
+ Utilisation des versions d’exécution compatibles lors des tests à blanc (consultez [Limitations](#performing-safe-canary-upgrades-limitations) pour la liste des versions d’exécution compatibles)

## Bonnes pratiques
<a name="performing-safe-canary-upgrades-best-practices"></a>

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
<a name="performing-safe-canary-upgrades-getting-started"></a>

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.

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

1. 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.

1. 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**.

1. 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.

1. Accédez à la page de liste **Synthetics**.

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

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

1. 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.

1. **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 test à blanc réussi, le texte **Lancer la mise à jour** s’affiche.

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

1. 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 renverra l'`DryRunId`intérieur du`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 * StateReasonCode*affiche 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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Troubleshoot.html) 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é](CloudWatch_Synthetics_Canaries_Troubleshoot.md).

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
<a name="performing-safe-canary-upgrades-limitations"></a>
+ Supporte les versions d'exécution : syn-nodejs-puppeteer -10.0\$1, syn-nodejs-playwright -2.0\$1, -5.1\$1 et syn-nodejs-3.0\$1 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.