Promozione di una release Canary
Quando si promuove una release canary, questa sostituisce le impostazioni correnti della fase. 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. Per promuovere una release canary, procedi come descritto di seguito.
-
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%.
Argomenti
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
-
Accedi alla console API Gateway e seleziona un'API esistente nel riquadro di navigazione principale.
-
Nel riquadro di navigazione principale scegli Fasi, quindi seleziona una fase esistente.
-
Scegli la scheda Canary.
-
Scegli Promuovi Canary.
-
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" } }
Utilizza il seguente comando update-stage per promuovere il canary:
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" }]'
L'output sarà simile al 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" } }
La promozione di una release canary nella fase non disabilita il canary e l'implementazione rimane un'implementazione 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.