

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.

# Utilisation du déplacement de trafic canary
<a name="deployment-guardrails-blue-green-canary"></a>

Avec le déplacement de trafic Canary, vous pouvez tester une partie de votre trafic de point de terminaison sur la nouvelle flotte tandis que l'ancienne flotte dessert le reste du trafic. Cette étape de test est une barrière de protection de sécurité qui vérifie le bon fonctionnement de la nouvelle flotte avant de déplacer tout votre trafic vers la nouvelle flotte. Vous bénéficiez toujours des avantages d'un déploiement bleu/vert, et la fonction Canary ajoutée vous permet de vous assurer que votre nouvelle flotte (verte) peut servir l'inférence avant de la laisser gérer l'intégralité du trafic.

La partie de votre flotte verte qui s'allume pour recevoir du trafic s'appelle le Canary, et vous pouvez choisir la taille de ce Canary. Notez que la taille des Canary doit être inférieure ou égale à 50 % de la capacité de la nouvelle flotte. Une fois la période de préparation terminée et si aucune alarme Amazon CloudWatch prédéfinie ne se déclenche, le reste du trafic est déplacé de l'ancienne flotte (bleue) à la flotte verte. Le déplacement de trafic Canary vous offre plus de sécurité pendant votre déploiement, car tout problème avec le modèle mis à jour n'affecte que le Canary.

Le diagramme suivant montre comment le déplacement de trafic Canary gère la répartition du trafic entre les flottes bleue et verte.

![\[Un déplacement réussi en deux étapes de l'intégralité du trafic de l'ancienne flotte vers la nouvelle flotte.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/deployment-guardrails-blue-green-canary.png)


Une fois que SageMaker AI a provisionné la flotte verte, SageMaker AI achemine une partie du trafic entrant (par exemple, 25 %) vers le canary. Puis commence la période de préparation, pendant laquelle vos alarmes CloudWatch surveillent les performances de la flotte verte. Pendant ce temps, la flotte bleue et la flotte verte sont partiellement actives et reçoivent du trafic. Si l’une des alarmes se déclenche pendant la période de préparation, SageMaker AI lance une annulation et tout le trafic retourne à la flotte bleue. Si aucune des alarmes ne se déclenche, alors tout le trafic se déplace vers la flotte verte et s'ensuit une période de préparation finale. Si la période de préparation finale se termine sans déclencher aucune alarme, alors la flotte verte transmet tout le trafic et SageMaker AI résilie la flotte bleue.

## Prérequis
<a name="deployment-guardrails-blue-green-canary-prereqs"></a>

Avant de configurer un déploiement avec un déplacement de trafic Canary, vous devez créer des alarmes Amazon CloudWatch pour contrôler les métriques à partir de votre point de terminaison. Les alarmes sont actives pendant la période de préparation, et si une alarme se déclenche, tout le trafic du point de terminaison est restaurée vers la flotte bleue. Pour savoir comment configurer des alarmes CloudWatch sur un point de terminaison, consultez la page des prérequis [Configuration et surveillance de la restauration automatique](deployment-guardrails-configuration.md). Pour en savoir plus sur les alarmes CloudWatch, consultez [Utilisation des alarmes Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) dans le *Guide de l’utilisateur Amazon CloudWatch*.

## Configurer le changement de trafic Canary
<a name="deployment-guardrails-blue-green-canary-configure"></a>

Une fois que vous êtes prêt et que vous avez configuré les alarmes Amazon CloudWatch pour votre point de terminaison, vous pouvez utiliser l’API [UpdateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html) Amazon SageMaker AI ou la commande [update-endpoint](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-endpoint.html) dans l’AWS CLI pour lancer le déploiement.

**Topics**
+ [Comment mettre à jour un point de terminaison (API)](#deployment-guardrails-blue-green-canary-configure-api-update)
+ [Comment mettre à jour un point de terminaison avec une politique de mise à jour bleue/verte (API) existante](#deployment-guardrails-blue-green-canary-configure-api-existing)
+ [Comment mettre à jour un point de terminaison (CLI)](#deployment-guardrails-blue-green-canary-configure-cli-update)

### Comment mettre à jour un point de terminaison (API)
<a name="deployment-guardrails-blue-green-canary-configure-api-update"></a>

L'exemple suivant de l'API [UpdateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html) montre comment vous pouvez mettre à jour un point de terminaison avec un déplacement de trafic Canary.

```
import boto3
client = boto3.client("sagemaker")

response = client.update_endpoint(
    EndpointName="<your-endpoint-name>",
    EndpointConfigName="<your-config-name>",
    DeploymentConfig={
        "BlueGreenUpdatePolicy": {
            "TrafficRoutingConfiguration": {
                "Type": "CANARY",
                "CanarySize": {
                    "Type": "CAPACITY_PERCENT",
                    "Value": 30
                },
                "WaitIntervalInSeconds": 600
            },
            "TerminationWaitInSeconds": 600,
            "MaximumExecutionTimeoutInSeconds": 1800
        },
        "AutoRollbackConfiguration": {
            "Alarms": [
                {
                    "AlarmName": "<your-cw-alarm>"
                }
            ]
        }
    }
)
```

Pour configurer l'option de déplacement de trafic Canary, procédez comme suit :
+ Pour `EndpointName`, utilisez le nom du point de terminaison existant que vous souhaitez mettre à jour.
+ Pour `EndpointConfigName`, utilisez le nom de la configuration de point de terminaison que vous souhaitez utiliser.
+ Sous `DeploymentConfig` et `BlueGreenUpdatePolicy`, dans `TrafficRoutingConfiguration`, définissez le paramètre `Type` sur `CANARY`. Cela permet de spécifier que le déploiement utilise le déplacement de trafic Canary.
+ Dans le champ `CanarySize`, vous pouvez changer la taille du Canary en modifiant les paramètres `Type` et `Value`. Pour `Type`, utilisez `CAPACITY_PERCENT`, c'est-à-dire le pourcentage de votre flotte verte que vous souhaitez utiliser comme Canary, puis définissez `Value` sur `30`. Dans cet exemple, vous utilisez 30 % de la capacité de la flotte verte en tant que Canary. Notez que la taille des Canary doit être égale ou inférieure à 50 % de la capacité de la flotte verte.
+ Pour `WaitIntervalInSeconds`, utilisez `600`. Le paramètre indique à SageMaker AI d’attendre la durée spécifiée (en secondes) entre chaque déplacement d’intervalle. Cet intervalle est la durée de la période de préparation des Canary. Dans l’exemple précédent, SageMaker AI attend 10 minutes après le déplacement canary, puis termine le deuxième et dernier déplacement de trafic.
+ Pour `TerminationWaitInSeconds`, utilisez `600`. Ce paramètre indique à SageMaker AI d’attendre le laps de temps spécifié (en secondes) une fois que la flotte verte est entièrement active avant de résilier les instances de la flotte bleue. Dans cet exemple, SageMaker AI attend 10 minutes après la dernière période de préparation avant de résilier la flotte bleue.
+ Pour `MaximumExecutionTimeoutInSeconds`, utilisez `1800`. Ce paramètre définit la durée maximale pendant laquelle le déploiement peut s'exécuter avant qu'il n'expire. Dans l'exemple précédent, votre déploiement doit être exécuté en moins de 30 minutes.
+ Dans `AutoRollbackConfiguration`, dans le champ `Alarms`, vous pouvez ajouter vos alarmes CloudWatch par nom. Créez un `AlarmName: <your-cw-alarm>` pour chaque alarme que vous souhaitez utiliser.

### Comment mettre à jour un point de terminaison avec une politique de mise à jour bleue/verte (API) existante
<a name="deployment-guardrails-blue-green-canary-configure-api-existing"></a>

Lorsque vous utilisez l'API [CreateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html) pour créer un point de terminaison, vous pouvez éventuellement spécifier une configuration de déploiement à réutiliser pour les futures mises à jour du point de terminaison. Vous pouvez utiliser les mêmes options `DeploymentConfig` que l'exemple d'API UpdateEndpoint précédent. Il n'y a aucun changement dans le comportement de l'API CreateEndpoint. La spécification de la configuration de déploiement n'effectue pas automatiquement une mise à jour bleu/vert sur votre point de terminaison.

La possibilité d'utiliser une configuration de déploiement précédente se produit lorsque vous utilisez l'API [UpdateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html) pour mettre à jour votre point de terminaison. Lors de la mise à jour de votre point de terminaison, vous pouvez utiliser l'option `RetainDeploymentConfig` pour conserver la configuration de déploiement que vous avez spécifiée lors de la création du point de terminaison.

Lorsque vous appelez l'API [UpdateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html), définissez `RetainDeploymentConfig` sur `True` pour conserver les options `DeploymentConfig` de votre configuration de point de terminaison d'origine.

```
response = client.update_endpoint(
    EndpointName="<your-endpoint-name>",
    EndpointConfigName="<your-config-name>",
    RetainDeploymentConfig=True
)
```

### Comment mettre à jour un point de terminaison (CLI)
<a name="deployment-guardrails-blue-green-canary-configure-cli-update"></a>

Si vous utilisez la AWS CLI, l'exemple suivant montre comment démarrer un déploiement Canary bleu/vert à l'aide de la commande [update-endpoint](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-endpoint.html).

```
update-endpoint
--endpoint-name <your-endpoint-name>
--endpoint-config-name <your-config-name> 
--deployment-config '"BlueGreenUpdatePolicy": {"TrafficRoutingConfiguration": {"Type": "CANARY",
    "CanarySize": {"Type": "CAPACITY_PERCENT", "Value": 30}, "WaitIntervalInSeconds": 600},
    "TerminationWaitInSeconds": 600, "MaximumExecutionTimeoutInSeconds": 1800},
    "AutoRollbackConfiguration": {"Alarms": [{"AlarmName": "<your-alarm>"}]}'
```

Pour configurer l'option de déplacement de trafic Canary, procédez comme suit :
+ Pour `endpoint-name`, utilisez le nom du point de terminaison que vous souhaitez mettre à jour.
+ Pour `endpoint-config-name`, utilisez le nom de la configuration de point de terminaison que vous souhaitez utiliser.
+ Pour `deployment-config`, utilisez un objet JSON [BlueGreenUpdatePolicy](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_BlueGreenUpdatePolicy.html).

**Note**  
Si vous préférez enregistrer votre objet JSON dans un fichier, consultez [Générer un squelette AWS CLI et des paramètres d’entrée](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-skeleton.html) dans le *Guide de l’utilisateur AWS CLI*.