Promozione di una release Canary - Amazon API Gateway

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Promozione di una release Canary

Promuovendo una release Canary si rende disponibile la versione API testata nella fase di produzione. L'operazione prevede le attività seguenti:

  • Reimpostazione dell'ID distribuzione della fase con le impostazioni dell'ID distribuzione della release Canary. Questa operazione comporta l'aggiornamento dello snapshot API della fase con lo snapshot della release Canary e l'impostazione della versione di test come release di produzione.

  • Aggiornamento delle variabili di fase con le variabili di fase della release Canary, se presenti. Questa operazione comporta l'aggiornamento del contesto di esecuzione dell'API della fase con quello della release Canary. Senza questo aggiornamento, la nuova versione API può produrre risultati imprevisti se la versione di test usa variabili di fase diverse o valori diversi delle variabili di fase esistenti.

  • Impostazione della percentuale del traffico della release Canary su 0,0%.

La promozione di una release Canary non comporta la disabilitazione della release Canary nella fase. Per disabilitare una release Canary, è necessario rimuovere le impostazioni Canary nella fase.

Promuovere una release Canary utilizzando la console API Gateway

Per usare la console API Gateway per promuovere una distribuzione di una release Canary, esegui queste operazioni:

Per promuovere l'implementazione di una release Canary
  1. Accedi alla console API Gateway e seleziona un'API esistente nel riquadro di navigazione principale.

  2. Nel riquadro di navigazione principale scegli Fasi, quindi seleziona una fase esistente.

  3. Scegli la scheda Canary.

  4. Scegli Promuovi Canary.

  5. Verifica le modifiche da apportare e scegli Promuovi Canary.

Dopo la promozione, la release di produzione fa riferimento alla stessa versione API (deploymentId) della release Canary. È possibile verificare questo utilizzando la AWS CLI. Per un esempio, consulta Promozione di una release Canary con AWS CLI.

Promozione di una release Canary con AWS CLI

Per promuovere una release Canary a release di produzione usando i comandi AWS CLI, chiama il comando update-stage per copiare il valore deploymentId associato alla release Canary nel valore associato alla fase deploymentId, per reimpostare la percentuale di traffico per la release Canary su zero (0.0) e per copiare le variabili di fase associate alla release Canary in quelle associate alla fase.

Supponiamo di avere una distribuzione di rilascio di Canary, descritta da una fase simile alla seguente:

{ "_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" } }

Per la promozione, chiamiamo la richiesta update-stage seguente:

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" }]'

Dopo la promozione, la fase ora è come la seguente:

{ "_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" } }

Come puoi vedere, la promozione di una versione Canary sulla fase non disabilita il Canary e la distribuzione rimane una distribuzione di release Canary. Per renderla una normale distribuzione di produzione, è necessario disabilitare le impostazioni Canary. Per ulteriori informazioni su come disabilitare una distribuzione di release Canary, consulta Disabilitazione di una release Canary.