Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Sie erstellen eine Canary-Release-Bereitstellung bei der Bereitstellung der API mit Canary-Einstellungen als zusätzliche Eingabe für die Bereitstellungserstellung.
Sie können auch aus einer bestehenden Nicht-Canary-Bereitstellung eine Canary-Release-Bereitstellung erstellen, indem Sie eine stage:update
-Anforderung erstellen, um die Canary-Einstellungen für die Stufe hinzuzufügen.
Beim Erstellen einer nicht-Canary-Release-Bereitstellung können Sie einen nicht existierenden Stufennamen angeben. API Gateway erstellt eine Stufe, wenn die angegebene Stufe nicht existiert. Sie können jedoch beim Anlegen einer Canary-Release-Bereitstellung keinen nicht existierenden Stufennamen angeben. Sie erhalten eine Fehlermeldung und API Gateway erstellt keine Canary-Release-Bereitstellung.
Sie können eine Canary-Release-Bereitstellung in API Gateway mit der API Gateway Gateway-Konsole AWS CLI, dem oder einem AWS SDK erstellen.
Themen
Erstellen einer Canary-Bereitstellung mithilfe der API Gateway-Konsole
Gehen Sie nach den Anweisungen unten vor, um eine Canary-Release-Bereitstellung mit der API Gateway-Konsole zu erstellen:
So erstellen Sie eine erste Canary-Release-Bereitstellung
-
Melden Sie sich bei der API Gateway-Konsole an.
-
Wählen Sie eine vorhandene REST API aus oder erstellen Sie eine neue REST API.
-
Klicken Sie im Hauptnavigationsbereich von auf Resources (Ressourcen) und auf Deploy API (API bereitstellen). Befolgen Sie die Anweisungen auf der Seite in Deploy API, um die API in einer neuen Stufe bereitzustellen.
Bislang haben Sie die API in einer Produktions-Release-Stufe bereitgestellt. Als Nächstes konfigurieren Sie Canary-Einstellungen für die Stufe und, falls erforderlich, auch das Caching. Sie legen Stufenvariablen fest oder konfigurieren die API-Ausführung oder die Zugriffsprotokolle.
-
Um das API-Caching zu aktivieren oder der Phase eine AWS WAF Web-ACL zuzuordnen, wählen Sie im Abschnitt Stage-Details die Option Bearbeiten aus. Weitere Informationen finden Sie unter Cache-Einstellungen für REST APIs in API Gateway oder So nutzen Sie die die API-Gateway-Konsole zur Verknüpfung einer AWS WAF -Web-ACL mit einer API-Gateway-API-Stufe:.
-
Um die Ausführung zu konfigurieren oder auf die Protokollierung zuzugreifen, wählen Sie im Abschnitt Logs and tracing (Protokolle und Nachverfolgung) die Option Edit (Bearbeiten) und folgen Sie den Anweisungen am Bildschirm. Weitere Informationen finden Sie unter Richten Sie die CloudWatch Protokollierung für REST APIs in API Gateway ein.
-
Um Stufenvariablen festzulegen, wählen Sie die Registerkarte Stage variables (Stufenvariablen) und folgen Sie den Anweisungen am Bildschirm, um Stufenvariablen hinzuzufügen oder zu ändern. Weitere Informationen finden Sie unter Stufenvariablen für eine REST-API in API Gateway verwenden.
-
Wählen Sie die Registerkarte Canary und dann Create canary (Canary erstellen) aus. Möglicherweise müssen Sie die rechte Pfeiltaste wählen, um die Registerkarte Canary anzuzeigen.
-
Geben Sie unter Canary settings (Canary-Einstellungen) für Canary den Prozentsatz der Anfragen ein, die an den Canary weitergeleitet werden sollen.
-
Wählen Sie bei Bedarf Stage Cache (Stufen-Cache) aus, um das Caching für die Canary-Version zu aktivieren. Der Cache steht für das Canary-Release erst dann zur Verfügung, wenn das API-Caching aktiviert ist.
-
Um bestehende Stufenvariablen zu überschreiben, geben Sie für Canary Override (Überschreibung des Canary) einen neuen Wert für die Stufenvariable ein.
Nachdem das Canary-Release in der Bereitstellungsstufe initialisiert wurde, ändern Sie die API und testen die Änderungen. Sie können die API in derselben Stufe erneut bereitstellen, sodass sowohl die aktualisierte Version als auch die Basisversion über dieselbe Stufe zugreifbar sind. In den folgenden Schritten wird beschrieben, wie Sie dies tun.
So stellen Sie die neueste API-Version für ein Canary bereit
-
Wählen Sie bei jeder Aktualisierung der API Deploy API (API bereitstellen) aus.
-
Wählen Sie in Deploy API (API bereitstellen) in der Dropdown-Liste Deployment stage (Bereitstellungsstufe) die Stufe aus, die einen Canary enthält.
-
(Optional) Geben Sie unter Deployment description (Beschreibung der Bereitstellen) eine Beschreibung ein.
-
Wählen Sie Deploy, um die neueste API-Version auf das Canary-Release zu übertragen.
-
Falls erwünscht, rekonfigurieren Sie die Stufeneinstellungen, Protokolle oder Canary-Einstellungen, wie in beschriebe So erstellen Sie eine erste Canary-Release-Bereitstellung.
Dadurch verweist das Canary-Release auf die neueste Version, während das Produktionsrelease noch auf die erste Version der API verweist. canarySettings hat jetzt einen neuen deploymentId-Wert, während die Stufe noch den ursprünglichen deploymentId-Wert aufweist. Hinter den Kulissen ruft die Konsole stage:update auf.
Erstellen Sie eine Canary-Bereitstellung mit dem AWS CLI
Um ein Canary-Deployment für eine neue Phase zu erstellen
-
Verwenden Sie den folgenden Befehl create-deployment, um eine Bereitstellung mit zwei Stufenvariablen, aber ohne Canary zu erstellen:
aws apigateway create-deployment \ --variables sv0=val0,sv1=val1 \ --rest-api-id abcd1234 \ --stage-name 'prod'
Die Ausgabe sieht wie folgt aus:
{ "id": "du4ot1", "createdDate": 1511379050 }
-
Verwenden Sie den folgenden Befehl create-deployment, um ein Canary-Deployment auf der Bühne zu erstellen:
prod
aws apigateway create-deployment \ --rest-api-id abcd1234 \ --canary-settings percentTraffic=10.5,stageVariableOverrides={sv1='val2',sv2='val3'},useStageCache=false \ --stage-name 'prod'
Die Ausgabe sieht wie folgt aus:
{ "id": "a6rox0", "createdDate": 1511379433 }
Die resultierende Bereitstellungs-
id
identifiziert die Testversion der API für das Canary-Release. Dadurch ist die zugehörige Stufe für Canary aktiviert. -
(Optional) Verwenden Sie den folgenden Befehl get-stage, um die Bühnendarstellung anzuzeigen:
aws apigateway get-stage --rest-api-id acbd1234 --stage-name prod
Nachfolgend ist eine Repräsentation der
Stage
als Ausgabe des Befehls zu sehen:{ "stageName": "prod", "variables": { "sv0": "val0", "sv1": "val1" }, "cacheClusterEnabled": false, "cacheClusterStatus": "NOT_AVAILABLE", "deploymentId": "du4ot1", "lastUpdatedDate": 1511379433, "createdDate": 1511379050, "canarySettings": { "percentTraffic": 10.5, "deploymentId": "a6rox0", "useStageCache": false, "stageVariableOverrides": { "sv2": "val3", "sv1": "val2" } }, "methodSettings": {} }
In diesem Beispiel verwendet die Basisversion der API die Stufenvariablen
{"sv0":val0", "sv1":val1"}
, während die Testversion die Stufenvariablen{"sv1":val2", "sv2":val3"}
verwendet. Sowohl das Produktionsrelease als auch das Canary-Release verwenden die gleiche Stufenvariablesv1
, jedoch mit unterschiedlichen Werten (val1
undval2
). Die Stufenvariablesv0
wird ausschließlich im Produktionsrelease verwendet und die Stufenvariablesv2
wird nur im Canary-Release verwendet.
Sie können auch eine Canary-Release-Bereitstellung aus einer bestehenden regulären Bereitstellung erstellen, indem Sie die Stage aktualisieren, um eine Canary-Version zu aktivieren.
Um eine Canary-Release-Bereitstellung aus einer bestehenden Bereitstellung zu erstellen
-
Verwenden Sie den Befehl create-deployment, um eine Bereitstellung ohne Canary zu erstellen:
aws apigateway create-deployment \ --variables sv0=val0,sv1=val1 \ --rest-api-id abcd1234 \ --stage-name 'beta'
-
Verwenden Sie den Befehl update-stage, um die Stage zu aktualisieren, um einen Canary zu aktivieren:
aws apigateway update-stage \ --rest-api-id abcd1234 \ --stage-name 'beta' \ --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:
{ "stageName": "beta", "variables": { "sv0": "val0", "sv1": "val1" }, "cacheClusterEnabled": false, "cacheClusterStatus": "NOT_AVAILABLE", "deploymentId": "cifeiw", "lastUpdatedDate": 1511381930, "createdDate": 1511380879, "canarySettings": { "percentTraffic": 10.5, "deploymentId": "cifeiw", "useStageCache": false, "stageVariableOverrides": { "sv2": "val3", "sv1": "val2" } }, "methodSettings": {} }
Da Sie einen Canary auf einer vorhandenen Version der API aktiviert haben, verweisen sowohl die Produktionsversion (
Stage
) als auch die Canary-Version (canarySettings
) auf dieselbe Bereitstellung. Nachdem Sie die API geändert und für diese Stufe wieder bereitgestellt haben, ist die neue Version im Canary-Release. Die Basisversion verbleibt im Produktions-Release. Dies wirkt sich auf die Stufenentwicklung aus, wenn diedeploymentId
im Canary-Release auf die neue Bereitstellungs-id
aktualisiert wird und diedeploymentId
im Produktions-Release unverändert bleibt.