Promotion d'une version Canary - Amazon API Gateway

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.

Promotion d'une version Canary

La promotion d'une version Canary a pour effet de rendre disponible la version d'API testée dans l'étape de production. L'opération implique les tâches suivantes :

  • Réinitialisez l'ID de déploiement de l'étape avec les paramètres d'ID de déploiement de la version Canary. Cette tâche à pour effet de mettre à jour l'instantané d'API de l'étape par rapport à l'instantané de la version Canary, ce qui fait de la version de test aussi la version de production.

  • Mise à jour des variables d'étape par rapport aux variables d'étape Canary, le cas échéant. Cette tâche a pour effet de mettre à jour le contexte d'exécution d'API de l'étape par rapport à celui de la version Canary. Sans cette mise à jour, la nouvelle version d'API peut produire des résultats inattendus si la version de test utilise des variables d'étape différentes ou des valeurs différentes pour les variables d'étape existantes.

  • Définition du pourcentage de trafic Canary sur 0.0%.

La promotion d'une version Canary n'a pas pour effet de la désactiver au niveau de l'étape. Pour désactiver une version Canary, vous devez supprimer les paramètres Canary de l'étape.

Promotion d'une version Canary à l'aide de la console API Gateway

Pour promouvoir le déploiement d'une version Canary à l'aide de la console API Gateway, procédez comme suit :

Pour promouvoir un déploiement de version canary
  1. Connectez-vous à la console API Gateway et choisissez l'API existante dans le panneau de navigation principal.

  2. Dans le volet de navigation principal, choisissez Étapes, puis choisissez une étape existante.

  3. Choisissez l'onglet Canary.

  4. Choisissez Promouvoir Canary.

  5. Confirmez les modifications à apporter, puis choisissez Promouvoir Canary.

À l'issue de la promotion, la version de production fait référence à la même version d'API (deploymentId) que la version Canary. Vous pouvez le vérifier à l’aide de l AWS CLI. Pour obtenir un exemple, consultez Promotion d'une version Canary à l'aide de l AWS CLI.

Promotion d'une version Canary à l'aide de l AWS CLI

Pour promouvoir une version Canary en version de production à l'aide des commandes de l'AWS CLI, appelez la commande update-stage pour copier le deploymentId associé à la version Canary dans le deploymentId associé à l'étape, pour réinitialiser le pourcentage de trafic Canary à zéro (0.0) et pour copier les variables d'étape liées à la version Canary dans celles liées à l'étape.

Supposons que nous ayons un déploiement de version canary, décrit par une phase semblable à la suivante :

{ "_links": { ... }, "accessLogSettings": { ... }, "cacheClusterEnabled": false, "cacheClusterStatus": "NOT_AVAILABLE", "canarySettings": { "deploymentId": "eh1sby", "useStageCache": false, "stageVariableOverrides": { "sv2": "val3", "sv1": "val2" }, "percentTraffic": 10.5 }, "createdDate": "2017-11-20T04:42:19Z", "deploymentId": "nfcn0x", "lastUpdatedDate": "2017-11-22T00:54:28Z", "methodSettings": { ... }, "stageName": "prod", "variables": { "sv1": "val1" } }

Nous appelons la demande update-stage ci-dessous pour en assurer la promotion :

aws apigateway update-stage \ --rest-api-id {rest-api-id} \ --stage-name '{stage-name}' \ --patch-operations '[{ "op": "replace", "value": "0.0", "path": "/canarySettings/percentTraffic" }, { "op": "copy", "from": "/canarySettings/stageVariableOverrides", "path": "/variables" }, { "op": "copy", "from": "/canarySettings/deploymentId", "path": "/deploymentId" }]'

Après fois la promotion, l'étape se présente comme suit :

{ "_links": { ... }, "accessLogSettings": { ... }, "cacheClusterEnabled": false, "cacheClusterStatus": "NOT_AVAILABLE", "canarySettings": { "deploymentId": "eh1sby", "useStageCache": false, "stageVariableOverrides": { "sv2": "val3", "sv1": "val2" }, "percentTraffic": 0 }, "createdDate": "2017-11-20T04:42:19Z", "deploymentId": "eh1sby", "lastUpdatedDate": "2017-11-22T05:29:47Z", "methodSettings": { ... }, "stageName": "prod", "variables": { "sv2": "val3", "sv1": "val2" } }

Comme vous pouvez le voir, la promotion d'une version canary à l'étape ne désactive pas canary et le déploiement demeure un déploiement de version canary. Pour rendre régulier un déploiement de la version de production, vous devez désactiver la configuration canary. Pour plus d'informations sur la façon de désactiver un déploiement de version canary, consultez Désactivation d'une version canary.