

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.

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