

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.

# Einrichten einer API Gateway-Canary-Release-Bereitstellung
<a name="canary-release"></a>

[Canary-Release](https://martinfowler.com/bliki/CanaryRelease.html) ist eine Softwareentwicklungsstrategie, bei der eine neue Version einer API (und anderer Software) zu Testzwecken eingesetzt wird und die Basisversion weiterhin als Produktionsrelease für den normalen Betrieb auf derselben Stufe eingesetzt wird. Im Rahmen dieses Artikels gehen wir davon aus, dass die Basisversion das Produktionsrelease ist. Sie können das Canary-Release jedoch auch für Tests in jeder anderen Version verwenden.

Bei einer Canary-Release-Bereitstellung wird der gesamte API-Verkehr mit einem vorkonfigurierten Verhältnis nach dem Zufallsprinzip in ein Produktionsrelease und ein Canary-Release getrennt. Normalerweise erhält die Canary-Release einen kleinen Prozentsatz des API-Verkehrs und das Produktionsrelease nimmt den Rest in Anspruch. Die aktualisierten API-Features sind nur für den API-Verkehr über das Canary-Release sichtbar. Sie können den Prozentsatz des Canary-Datenverkehrs anpassen, um die Testabdeckung oder die Leistung zu optimieren. 

Indem man den Canary-Verkehr gering und die Auswahl zufällig hält, werden die meisten Benutzer zu keiner Zeit durch potenzielle Fehler in der neuen Version beeinträchtigt und kein einzelner Benutzer wird ständig beeinträchtigt.

Nachdem die Testmetriken Ihre Anforderungen erfüllt haben, können Sie das Canary-Release in das Produktionsrelease überführen und Canary für die Bereitstellung deaktivieren. Damit stehen die neuen Features bereits in der Produktionsstufe zur Verfügung. 

**Topics**
+ [Canary-Release-Bereitstellung in API Gateway](#api-gateway-canary-release-deployment-overview)
+ [Erstellen einer Canary-Release-Bereitstellung](create-canary-deployment.md)
+ [Aktualisieren eines Canary-Releases](update-canary-deployment.md)
+ [Hochstufen eines Canary-Releases](promote-canary-deployment.md)
+ [Deaktivieren eines Canary-Releases](delete-canary-deployment.md)

## Canary-Release-Bereitstellung in API Gateway
<a name="api-gateway-canary-release-deployment-overview"></a>

 In API Gateway verwendet eine Canary-Release-Bereitstellung die Bereitstellungsstufe für die Produktionsfreigabe der Basisversion einer API und fügt der Stufe ein Canary-Release für die neuen Versionen relativ zur Basisversion der API hinzu. Die Stufe ist der ersten Bereitstellung und das Canary-Release den nachfolgenden Bereitstellungen zugeordnet. Zu Beginn verweisen sowohl die Stufe als auch das Canary auf die gleiche API-Version. Wir nutzen die Begriffe Stufen- und Produktionsrelease und Canary und Canary-Release in diesem Abschnitt gleichwertig.

Um eine API mit einem Canary-Release bereitzustellen, erstellen Sie eine Canary-Release-Bereitstellung, indem Sie die [Canary-Einstellungen](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings) zur [Stufe](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html) einer regulären [Bereitstellung](https://docs.aws.amazon.com/apigateway/latest/api/API_Deployment.html) hinzufügen. Die Canary-Einstellungen beschreiben das zugrunde liegende Canary-Release und die Stufe repräsentiert die Produktionsfreigabe der API innerhalb dieser Bereitstellung. Um Canary-Einstellungen hinzuzufügen, legen Sie `canarySettings` in der Bereitstellungsstufe fest und geben Sie Folgendes an: 
+  Eine Bereitstellungs-ID. Diese ID ist zunächst mit der ID der Basisversion, die für die Stufe festgelegt wurde, identisch. 
+  Ein [Prozentsatz des API-Verkehrs](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#percentTraffic) zwischen 0,0 und 100,0 (inklusive) für das Canary-Release. 
+  [Stufenvariablen für das Canary-Release](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#stageVariableOverrides), die die Stufenvariablen des Produktionsreleases überschreiben können. 
+  Die [Verwendung des Stage-Caches](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#useStageCache) für Canary-Anfragen, sofern der [useStageCache](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#useStageCache)festgelegt und das API-Caching auf der Bühne aktiviert ist.

 Nachdem ein Canary-Release aktiviert wurde, kann die Bereitstellungsstufe nicht mit einem anderen nicht-Canary-Release verbunden werden, bis das Canary-Release deaktiviert und die Canary-Einstellungen von der Stufe entfernt wurden. 

Wenn Sie die Protokollierung der API-Ausführung aktivieren, werden für das Canary-Release eigenen Protokolle und Metriken für alle Canary-Anforderungen generiert. Sie werden sowohl an eine CloudWatch Log-Protokollgruppe für die Produktionsphase als auch an eine Logs-Protokollgruppe für die Kanaren CloudWatch gemeldet. Gleiches gilt für die Zugriffsprotokollierung. Die separaten Canary-spezifischen Protokolle sind hilfreich, um neue API-Änderungen zu validieren und zu entscheiden, ob die Änderungen akzeptiert werden sollen und das Canary-Release in die Produktionsstufe übernommen werden soll oder ob die Änderungen verworfen werden sollen und das Canary-Release aus der Produktionsstufe zurückgenommen werden soll.

Die Protokollgruppe für die Ausführung in der Produktionsstufe heißt `API-Gateway-Execution-Logs/{rest-api-id}/{stage-name}` und die Protokollgruppe für die Ausführung im Canary-Release heißt `API-Gateway-Execution-Logs/{rest-api-id}/{stage-name}/Canary`. Für die Zugriffsprotokollierung müssen Sie eine neue Protokollgruppe anlegen oder eine bestehende auswählen. Der Name der Canary-Release-Zugriffsprotokollgruppe enthält das Suffix `/Canary`, das an den Namen der ausgewählten Protokollgruppe angehängt ist. 

Eine Canary-Version kann den Stage-Cache verwenden, falls dieser aktiviert ist, um Antworten zu speichern und zwischengespeicherte Einträge zu verwenden, um Ergebnisse innerhalb eines vorkonfigurierten Zeitraums time-to-live (TTL) an die nächsten Canary-Anfragen zurückzugeben. 

Bei einer Canary-Release-Bereitstellung können das Produktions- und das Canary-Release der API der gleichen Version oder verschiedenen Versionen zugeordnet werden. Wenn sie verschiedenen Versionen zugeordnet sind, werden die Antworten für Produktions- und Canary-Anforderungen getrennt zwischengespeichert und der Stage-Cache liefert entsprechende Ergebnisse für Produktions- und Canary-Anforderungen. Wenn das Produktionsrelease und das Canary-Release mit derselben Bereitstellung verbunden sind, verwendet der Stage-Cache einen einzigen Cache-Key für beide Arten von Anforderungen und gibt dieselbe Antwort für dieselben Anforderungen aus dem Produktionsrelease und dem Canary-Release zurück. 

# Erstellen einer Canary-Release-Bereitstellung
<a name="create-canary-deployment"></a>

Sie erstellen eine Canary-Release-Bereitstellung bei der Bereitstellung der API mit [Canary-Einstellungen](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateDeployment.html#canarySettings) als zusätzliche Eingabe für die [Bereitstellungserstellung](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateDeployment.html). 

Sie können auch aus einer bestehenden Nicht-Canary-Bereitstellung eine Canary-Release-Bereitstellung erstellen, indem Sie eine [https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html)-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.

**Topics**
+ [Erstellen einer Canary-Bereitstellung mithilfe der API Gateway-Konsole](#create-canary-deployment-using-console)
+ [Erstellen Sie eine Canary-Bereitstellung mit dem AWS CLI](#create-canary-deployment-using-cli)

## Erstellen einer Canary-Bereitstellung mithilfe der API Gateway-Konsole
<a name="create-canary-deployment-using-console"></a>

Gehen Sie nach den Anweisungen unten vor, um eine Canary-Release-Bereitstellung mit der API Gateway-Konsole zu erstellen:<a name="to-create-canary-release-on-new-deployment"></a>

**So erstellen Sie eine erste Canary-Release-Bereitstellung**

1.  Melden Sie sich bei der API Gateway-Konsole an.

1.  Wählen Sie eine vorhandene REST API aus oder erstellen Sie eine neue REST API.

1.  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.

1.  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. Für weitere Informationen siehe [Cache-Einstellungen für REST APIs in API Gateway](api-gateway-caching.md) oder [So verknüpfen Sie mithilfe der API Gateway Gateway-Konsole eine AWS WAF Web-ACL mit einer API-Gateway-API-Stufe](apigateway-control-access-aws-waf.md#apigateway-control-access-aws-waf-console).

1.  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](set-up-logging.md).

1. 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](stage-variables.md).

1.  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.

1.  Geben Sie unter **Canary settings** (Canary-Einstellungen) für **Canary** den Prozentsatz der Anfragen ein, die an den Canary weitergeleitet werden sollen.

1. 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.

1. 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. <a name="to-deploy-latest-api-to-canary-release"></a>

**So stellen Sie die neueste API-Version für ein Canary bereit**

1.  Wählen Sie bei jeder Aktualisierung der API **Deploy API** (API bereitstellen) aus.

1.  Wählen Sie in **Deploy API** (API bereitstellen) in der Dropdown-Liste **Deployment stage** (Bereitstellungsstufe) die Stufe aus, die einen Canary enthält. 

1.  (Optional) Geben Sie unter **Deployment description** (Beschreibung der Bereitstellen) eine Beschreibung ein. 

1.  Wählen Sie **Deploy**, um die neueste API-Version auf das Canary-Release zu übertragen.

1.  Falls erwünscht, rekonfigurieren Sie die Stufeneinstellungen, Protokolle oder Canary-Einstellungen, wie in beschriebe [So erstellen Sie eine erste Canary-Release-Bereitstellung](#to-create-canary-release-on-new-deployment).

 Dadurch verweist das Canary-Release auf die neueste Version, während das Produktionsrelease noch auf die erste Version der API verweist. [https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings) hat jetzt einen neuen **deploymentId**-Wert, während die Stufe noch den ursprünglichen [https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#deploymentId](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#deploymentId)-Wert aufweist. Hinter den Kulissen ruft die Konsole [https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html) auf.

## Erstellen Sie eine Canary-Bereitstellung mit dem AWS CLI
<a name="create-canary-deployment-using-cli"></a>

**So erstellen Sie eine Canary-Bereitstellung für eine neue Stufe**

1. Verwenden Sie den folgenden [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html)-Befehl, 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
   }
   ```

1. Verwenden Sie den folgenden [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html)-Befehl, um eine Canary-Bereitstellung in der `prod`-Stufe zu erstellen:

   ```
   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.

1. (Optional) Verwenden Sie den folgenden [get-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-stage.html)-Befehl, um die Repräsentation der Stufe 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 Stufenvariable `sv1`, jedoch mit unterschiedlichen Werten (`val1` und `val2`). Die Stufenvariable `sv0` wird ausschließlich im Produktionsrelease verwendet und die Stufenvariable `sv2` wird nur im Canary-Release verwendet. 

Sie können auch eine Canary-Release-Bereitstellung aus einer bestehenden regulären Bereitstellung erstellen, indem Sie die Stufe aktualisieren, um einen Canary zu aktivieren.

**So erstellen Sie eine Canary-Release-Bereitstellung aus einer vorhandenen Bereitstellung**

1. Verwenden Sie den [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html)-Befehl, um eine Bereitstellung ohne einen Canary zu erstellen:

   ```
   aws apigateway create-deployment \
       --variables sv0=val0,sv1=val1 \  
       --rest-api-id abcd1234 \
       --stage-name 'beta'
   ```

1. Verwenden Sie den [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html)-Befehl, um die Stufe zu aktualisieren und 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 in einer bestehenden Version der API aktiviert haben, verweisen sowohl die Produktionsveröffentlichung (`Stage`) als auch die Canary-Veröffentlichung (`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 die `deploymentId` im Canary-Release auf die neue Bereitstellungs-`id` aktualisiert wird und die `deploymentId` im Produktions-Release unverändert bleibt.

# Aktualisieren eines Canary-Releases
<a name="update-canary-deployment"></a>

 Nach der Bereitstellung eines Canary-Releases können Sie den prozentualen Anteil des Canary-Verkehrs anpassen oder die Verwendung eines Stage-Caches aktivieren oder deaktivieren, um die Testperformance zu optimieren. Sie können außerdem Stufenvariablen modifizieren, die im Canary-Release verwendet werden, wenn der Ausführungskontext aktualisiert wird. Um solche Aktualisierungen vorzunehmen, rufen Sie die Operation [https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html) mit neuen Werten für [canarySettings](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings) auf. 

Sie können eine Canary-Version mit der API Gateway Gateway-Konsole, dem Befehl AWS CLI [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) oder einem AWS SDK aktualisieren.

**Topics**
+ [Aktualisieren eines Canary-Releases mit der API Gateway-Konsole](#update-canary-deployment-using-console)
+ [Aktualisieren Sie eine Canary-Version mit dem AWS CLI](#update-canary-deployment-using-cli)

## Aktualisieren eines Canary-Releases mit der API Gateway-Konsole
<a name="update-canary-deployment-using-console"></a>

Um die API Gateway-Konsole zur Aktualisierung der vorhandenen Canary-Einstellungen einer Stufe zu nutzen, führen Sie die folgenden Schritte aus:

**Aktualisieren bestehender Canary-Einstellungen**

1.  Melden Sie sich bei der API Gateway-Konsole an und wählen Sie eine bestehende REST API aus.

1.  Wählen Sie im Hauptnavigationsbereich **Stages** (Stufen) und anschließend eine bestehende Stufe aus.

1.  Wählen Sie die Registerkarte **Canary** und anschließend **Edit** (Bearbeiten) aus. Möglicherweise müssen Sie die rechte Pfeiltaste wählen, um die Registerkarte **Canary** anzuzeigen. 

1.  Aktualisieren Sie **Request distribution** (Verteilung anfordern), indem Sie den Prozentsatz auf einen Wert zwischen 0,0 und 100,0 (inklusive) erhöhen oder verringern. 

1.  Aktivieren oder deaktivieren Sie das Kontrollkästchen unter **Stage cache** (Stage-Cache). 

1.  Fügen Sie **Canary stage variables** (Canary-Stufenvariablen) hinzu, entfernen oder ändern Sie sie.

1.  Wählen Sie **Speichern**.

## Aktualisieren Sie eine Canary-Version mit dem AWS CLI
<a name="update-canary-deployment-using-cli"></a>

Um einen Canary AWS CLI zu aktualisieren, verwenden Sie den [https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html)Befehl und ändern Sie den Patch-Vorgang für jeden Parameter des Canary.

Der folgende [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html)-Befehl aktualisiert, ob der Canary den Stufen-Cache verwendet:

```
aws apigateway update-stage \
    --rest-api-id {rest-api-id} \
    --stage-name '{stage-name}' \
    --patch-operations op=replace,path=/canarySettings/useStageCache,value=true
```

Der folgende [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html)-Befehl aktualisiert den Prozentsatz des Canary-Datenverkehrs:

```
aws apigateway update-stage \
    --rest-api-id {rest-api-id} \
    --stage-name '{stage-name}' \
    --patch-operations op=replace,path=/canarySettings/percentTraffic,value=25.0
```

Der folgende [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html)-Befehl aktualisiert Stufenvariablen. Das Beispiel zeigt, wie Sie eine neue Stufenvariable mit dem Namen `newVar` erstellen, die Stufenvariable `var2` überschreiben und die Stufenvariable `var1` entfernen:

```
aws apigateway update-stage  \
    --rest-api-id {rest-api-id} \
    --stage-name '{stage-name}'  \
    --patch-operations '[{                                      
        "op": "replace",                                        
        "path": "/canarySettings/stageVariableOverrides/newVar", 
        "value": "newVal"                                      
      }, { 
        "op": "replace",                                        
        "path": "/canarySettings/stageVariableOverrides/var2",   
        "value": "val4"                                        
      }, {                                                      
        "op": "remove",                                         
        "path": "/canarySettings/stageVariableOverrides/var1"    
      }]'
```

Sie können das oben Genannte aktualisieren, indem Sie die Operationen zu einem einzigen `patch-operations`-Wert zusammenfassen:

```
aws apigateway update-stage  \
    --rest-api-id {rest-api-id} \
    --stage-name '{stage-name}' \
    --patch-operations '[{                                       
        "op": "replace",                                         
        "path": "/canarySettings/percentTraffic",                        
        "value": "20.0"                                          
    }, {                                                         
        "op": "replace",                                         
        "path": "/canarySettings/useStageCache",                        
        "value": "true"                                          
    }, {                                                         
        "op": "remove",                                          
        "path": "/canarySettings/stageVariableOverrides/var1"    
    }, {                                                         
        "op": "replace",                                         
        "path": "/canarySettings/stageVariableOverrides/newVar", 
        "value": "newVal"                                        
    }, {                                                         
        "op": "replace",                                         
        "path": "/canarySettings/stageVariableOverrides/val2",   
        "value": "val4"                                          
      }]'
```



# Hochstufen eines Canary-Releases
<a name="promote-canary-deployment"></a>

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](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#deploymentId) der Stufe mit den [Bereitstellungs-ID](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings)-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.

**Topics**
+ [Hochstufen eines Canary-Releases mit der API Gateway-Konsole](#promote-canary-release-deployment-console)
+ [Bewerben Sie eine Canary-Version mit dem AWS CLI](#promote-canary-release-cli)

## Hochstufen eines Canary-Releases mit der API Gateway-Konsole
<a name="promote-canary-release-deployment-console"></a>

Gehen Sie nach den Anweisungen unten vor, um eine Canary-Release-Bereitstellung mit der API Gateway-Konsole hochzustufen:

**Hochstufen einer Canary-Release-Bereitstellung**

1.  Melden Sie sich bei der API Gateway-Konsole an und wählen Sie eine bestehende API im Hauptnavigationsbereich aus.

1.  Wählen Sie im Hauptnavigationsbereich **Stages** (Stufen) und anschließend eine bestehende Stufe aus.

1.  Wählen Sie die Registerkarte **Canary**.

1.  Wählen Sie **Promote Canary** (Canary hochstufen) aus.

1.  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 mit dem überprüfen AWS CLI. Ein Beispiel finden Sie unter [Bewerben Sie eine Canary-Version mit dem AWS CLI](#promote-canary-release-cli). 

## Bewerben Sie eine Canary-Version mit dem AWS CLI
<a name="promote-canary-release-cli"></a>

Um eine Canary-Version mithilfe der AWS CLI Befehle zur Produktionsversion hochzustufen, rufen Sie den `update-stage` Befehl auf, um die Canary-assoziierte `deploymentId` Version in die Stage-Associated zu kopieren`deploymentId`, den Prozentsatz des Canary-Traffics auf Null (`0.0`) zurückzusetzen und alle kanariengebundenen Stage-Variablen in die entsprechenden Stage-Variablen 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](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html)-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](delete-canary-deployment.md).

# Deaktivieren eines Canary-Releases
<a name="delete-canary-deployment"></a>

Um eine Canary-Release-Bereitstellung zu deaktivieren, müssen Sie [https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings) auf null setzen, um es von der Stufe zu entfernen. 

Sie können eine Canary-Release-Bereitstellung mit der API Gateway Gateway-Konsole AWS CLI, dem oder einem AWS SDK deaktivieren.

**Topics**
+ [Deaktivieren eines Canary-Releases mit der API Gateway-Konsole](#delete-canary-release-console)
+ [Schalten Sie eine Canary-Version mit dem aus AWS CLI](#delete-canary-release-cli)

## Deaktivieren eines Canary-Releases mit der API Gateway-Konsole
<a name="delete-canary-release-console"></a>

Gehen Sie nach den Anweisungen unten vor, um eine Canary-Release-Bereitstellung mit der API Gateway-Konsole zu deaktivieren:

**Deaktivieren einer Canary-Release-Bereitstellung**

1. Melden Sie sich bei der API Gateway-Konsole an und wählen Sie eine bestehende API im Hauptnavigationsbereich aus.

1. Wählen Sie im Hauptnavigationsbereich **Stages** (Stufen) und anschließend eine bestehende Stufe aus.

1.  Wählen Sie die Registerkarte **Canary**.

1.  Wählen Sie **Löschen** aus.

1.  Bestätigen Sie, dass Sie das Canary löschen möchten, indem Sie **Delete** auswählen.

Dadurch wird die Eigenschaft [https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings) auf `null` gesetzt und aus der [Bereitstellungsstufe](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html) entfernt. Sie können dies mit dem überprüfen AWS CLI. Ein Beispiel finden Sie unter [Schalten Sie eine Canary-Version mit dem aus AWS CLI](#delete-canary-release-cli).

## Schalten Sie eine Canary-Version mit dem aus AWS CLI
<a name="delete-canary-release-cli"></a>

Der folgende [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html)-Befehl deaktiviert die Bereitstellung der Canary-Version:

```
aws apigateway update-stage \
    --rest-api-id abcd1234 \
    --stage-name canary \
    --patch-operations '[{"op":"remove", "path":"/canarySettings"}]'
```

Die Ausgabe sollte wie folgt aussehen:

```
{
    "stageName": "prod", 
    "accessLogSettings": {
        ...
    }, 
    "cacheClusterEnabled": false, 
    "cacheClusterStatus": "NOT_AVAILABLE", 
    "deploymentId": "nfcn0x", 
    "lastUpdatedDate": 1511309280, 
    "createdDate": 1511152939, 
    "methodSettings": {
        ...
    }
}
```

 Wie aus der Ausgabe hervorgeht, ist die Eigenschaft [canarySettings](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings) nun nicht mehr in der [Stufe](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html) einer Canary-deaktivierten Bereitstellung enthalten.