Hochstufen eines Canary-Releases
Wenn Sie ein Canary-Release hochstufen, ersetzt das Canary-Release die aktuellen Einstellungen der Stufe. Das Hochstufen eines Canary-Releases bedeutet nicht, dass das Canary für die Stufe deaktiviert wird. Um ein Canary zu deaktivieren, müssen Sie die Canary-Einstellungen der Stufe entfernen. Sie stufen ein Canary-Release wie folgt hoch.
-
Setzen Sie die Bereitstellungs-ID der Stufe mit den Bereitstellungs-ID-Einstellungen des Canarys zurück. Dadurch wird der API-Snapshot der Stufe mit dem Snapshot des Canarys aktualisiert, sodass die Testversion auch zum Produktionsrelease wird.
-
Aktualisieren Sie Stufenvariablen mit Canary-Stufenvariablen, falls vorhanden. Dadurch wird der API-Ausführungskontext der Stufe mit dem des Canarys aktualisiert. Ohne dieses Update kann die neue API-Version unerwartete Ergebnisse liefern, wenn die Testversion unterschiedliche Stufenvariablen oder unterschiedliche Werte vorhandener Stufenvariablen verwendet.
-
Legen Sie den Prozentsatz des Canary-Verkehrs auf 0,0 % fest.
Themen
Hochstufen eines Canary-Releases mit der API Gateway-Konsole
Gehen Sie nach den Anweisungen unten vor, um eine Canary-Release-Bereitstellung mit der API Gateway-Konsole hochzustufen:
Hochstufen einer Canary-Release-Bereitstellung
-
Melden Sie sich bei der API Gateway-Konsole an und wählen Sie eine bestehende API im Hauptnavigationsbereich aus.
-
Wählen Sie im Hauptnavigationsbereich Stages (Stufen) und anschließend eine bestehende Stufe aus.
-
Wählen Sie die Registerkarte Canary.
-
Wählen Sie Promote Canary (Canary hochstufen) aus.
-
Bestätigen Sie die durchzuführenden Änderungen und wählen Sie Promote canary (Canary hochstufen) aus.
Nach der Aktion verweist das Produktionsrelease auf die gleiche API-Version (deploymentId) wie das Canary-Release. Sie können dies mithilfe der AWS CLI überprüfen. Für Beispiele vgl. Hochstufen eines Canary-Releases mit der AWS CLI.
Hochstufen eines Canary-Releases mit der AWS CLI
Um mit den AWS CLI-Befehlen ein Canary-Release für das Produktionsrelease hochzustufen, rufen Sie den Befehl update-stage
auf, um die dem Canary zugeordnete deploymentId
zu der der Stufe zugeordneten deploymentId
zu kopieren, den Prozentsatz für den Canary-Verkehr auf null (0.0
) zurückzusetzen und alle Canary-Stufenvariablen zur entsprechenden Stufe zu kopieren.
Angenommen, wir haben eine Canary-Release-Bereitstellung, die durch eine in etwa wie folgt aussehende Stufe beschrieben wird:
{ "_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" } }
Verwenden Sie den folgenden update-stage-Befehl, um den Canary hochzustufen:
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" }]'
Die Ausgabe sieht wie folgt aus:
{ "_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" } }
Durch ein Hochstufen eines Canary-Release wird Canary nicht deaktiviert und die Bereitstellung bleibt weiterhin eine Canary-Release-Bereitstellung. Um daraus eine reguläre Produktions-Release-Bereitstellung zu machen, müssen Sie die Canary-Einstellungen deaktivieren. Weitere Informationen dazu, wie Sie eine Canary-Release-Bereitstellung deaktivieren, finden Sie unter Deaktivieren eines Canary-Releases.