

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.

# Implementieren Sie Lambda Canary-Bereitstellungen mithilfe eines gewichteten Alias
<a name="configuring-alias-routing"></a>

Sie können einen gewichteten Alias verwenden, um den Datenverkehr auf zwei verschiedene [Versionen](configuration-versions.md) derselben Funktion aufzuteilen. Mit diesem Ansatz können Sie neue Versionen Ihrer Funktionen mit einem kleinen Prozentsatz des Datenverkehrs testen und bei Bedarf schnell wieder zurücksetzen. Dies wird als [Canary-Bereitstellung](https://docs.aws.amazon.com/whitepapers/latest/overview-deployment-options/canary-deployments.html) bezeichnet. Kanarische Bereitstellungen unterscheiden sich von blue/green Bereitstellungen dadurch, dass die neue Version nur einem Teil der Anfragen ausgesetzt wird, anstatt den gesamten Datenverkehr auf einmal umzuleiten.

Sie können ein Alias auf maximal zwei Lambda-Funktionsversionen verweisen lassen. Die Versionen müssen folgende Kriterien erfüllen:
+ Beide Versionen müssen die gleiche [Ausführungsrolle](lambda-intro-execution-role.md) haben.
+ Beide Versionen müssen die gleiche [Warteschlangenkonfiguration für unzustellbare Nachrichten](invocation-async-retain-records.md#invocation-dlq) oder keine Warteschlangenkonfiguration für unzustellbare Nachrichten haben.
+ Beide Versionen müssen veröffentlicht werden. Der Alias darf nicht auf verweise `$LATEST`.

**Anmerkung**  
Lambda verwendet ein einfaches probabilistisches Modell, um den Datenverkehr zwischen den beiden Funktionsversionen zu verteilen. Bei niedrigem Datenverkehr sehen Sie möglicherweise eine hohe Abweichung zwischen dem konfigurierten und dem tatsächlichen Prozentsatz des Datenverkehrs für jede Version. Wenn Ihre Funktion bereitgestellte Parallelität verwendet, können Sie [Überlaufaufrufe](monitoring-metrics-types.md#invocation-metrics) durch Konfigurieren einer höheren Anzahl von bereitgestellten Parallelitätsinstances während des aktiven Alias-Routings vermeiden. 

## Einen gewichteten Alias erstellen
<a name="create-weighted-alias"></a>

------
#### [ Console ]

**So konfigurieren Sie das Routing für einen Alias über die Konsole**
**Anmerkung**  
Stellen Sie sicher, dass die Funktion über mindestens zwei veröffentlichte Versionen verfügt. Um weitere Versionen zu erstellen, folgen Sie den Anweisungen unter [Erstellen von Funktionsversionen](configuration-versions.md#configuration-versions-config).

1. Öffnen Sie die Seite [Funktionen](https://console.aws.amazon.com/lambda/home#/functions) der Lambda-Konsole.

1. Wählen Sie eine Funktion aus.

1. Wählen Sie **Aliasse** und dann **Alias erstellen** aus.

1. Führen Sie auf der Seite **Alias erstellen** die folgenden Schritte aus:

   1. Machen Sie für den Alias eine Angabe unter **Name**.

   1. (Optional) Geben Sie eine **Beschreibung** für den Alias ein.

   1. Wählen Sie unter **Version** die erste Funktionsversion aus, auf die der Alias verweisen soll.

   1. Erweitern Sie **Gewichteter Alias**.

   1. Wählen Sie unter **Zusätzliche Version** die zweite Funktionsversion aus, auf die der Alias verweisen soll.

   1. Geben Sie unter **Gewicht (%)** einen Gewichtungswert für die Funktion ein. Die *Gewichtung* ist der Prozentsatz des Datenverkehrs, der beim Aufruf des Alias dieser Version zugewiesen wird. Die erste Version erhält den Datenverkehr mit der verbleibenden Gewichtung. Wenn Sie beispielsweise 10 Prozent für die **Additional version (Zusätzliche Version)** angeben, werden der ersten Version automatisch 90 Prozent zugewiesen.

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

------
#### [ AWS CLI ]

Verwenden Sie die AWS CLI Befehle [create-alias und update-alias](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-alias.html)[, um die Datenverkehrsgewichte](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-alias.html) zwischen zwei Funktionsversionen zu konfigurieren. Wenn Sie den Alias erstellen oder aktualisieren, geben Sie die Datenverkehrsgewichtung im `routing-config`-Parameter an.

Im folgenden Beispiel wird ein Lambda-Funktionsalias namens **routing-alias** erstellt, der auf Version 1 der Funktion verweist. Version 2 der Funktion erhält 3 Prozent des Datenverkehrs. Die verbleibenden 97 Prozent des Datenverkehrs werden zu Version 1 weitergeleitet.

```
aws lambda create-alias \
  --name routing-alias \
  --function-name my-function \
  --function-version 1  \
  --routing-config AdditionalVersionWeights={"2"=0.03}
```

Verwenden Sie den `update-alias`-Befehl, um den Prozentsatz des eingehenden Datenverkehrs an Version 2 zu erhöhen. Im folgenden Beispiel erhöhen Sie den Datenverkehr auf 5 Prozent.

```
aws lambda update-alias \
  --name routing-alias \
  --function-name my-function \
  --routing-config AdditionalVersionWeights={"2"=0.05}
```

Um den gesamten Datenverkehr an Version 2 weiterzuleiten, ändern Sie den Befehl `update-alias`, um die Eigenschaft `function-version` so zu ändern, dass der Alias auf Version 2 verweist. Der Befehl setzt auch die Weiterleitungskonfiguration zurück.

```
aws lambda update-alias \
  --name routing-alias \
  --function-name my-function  \
  --function-version 2 \
  --routing-config AdditionalVersionWeights={}
```

 Die AWS CLI Befehle in den vorherigen Schritten entsprechen den folgenden Lambda-API-Operationen:
+ [CreateAlias](https://docs.aws.amazon.com/lambda/latest/api/API_CreateAlias.html)
+ [UpdateAlias](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateAlias.html)

------

## Feststellen, welche Version aufgerufen wurde
<a name="determining-routing-version"></a>

Wenn Sie Datenverkehrsgewichtungen zwischen zwei Funktionsversionen konfigurieren, gibt es zwei Möglichkeiten, die aufgerufene Lambda-Funktionsversion zu bestimmen:
+ **CloudWatch Logs** — Lambda gibt automatisch einen `START` Protokolleintrag aus, der die aufgerufene Versions-ID für jeden Funktionsaufruf enthält. Beispiel:

  `START RequestId: 1dh194d3759ed-4v8b-a7b4-1e541f60235f Version: 2` 

  Für Aliasaufrufe verwendet Lambda die Dimension `ExecutedVersion` zum Filtern der Metrikdaten nach aufgerufener Version. Weitere Informationen finden Sie unter [Anzeigen von Metriken für Lambda-Funktionen](monitoring-metrics-view.md).
+ **Antwortnutzlast (synchrone Aufrufe)** – Antworten auf synchrone Funktionsaufrufe enthalten einen `x-amz-executed-version`-Header, der angibt, welche Funktionsversion aufgerufen wurde.

## Erstellen Sie eine fortlaufende Bereitstellung mit gewichteten Aliasnamen
<a name="lambda-rolling-deployments"></a>

Verwenden Sie AWS CodeDeploy und AWS Serverless Application Model (AWS SAM), um eine fortlaufende Bereitstellung zu erstellen, die automatisch Änderungen an Ihrem Funktionscode erkennt, eine neue Version Ihrer Funktion bereitstellt und die Menge des Datenverkehrs, der zur neuen Version fließt, schrittweise erhöht. Der Datenverkehr und die Erhöhungsrate sind Parameter, die Sie konfigurieren können.

 AWS SAM Führt in einer fortlaufenden Bereitstellung die folgenden Aufgaben aus:
+ Konfiguriert Ihre Lambda-Funktion und erstellt einen Alias. Die gewichtete Alias-Weiterleitungskonfiguration ist die zugrunde liegende Funktion, die die fortlaufende Bereitstellung implementiert.
+ Erstellt eine CodeDeploy Anwendung und eine Bereitstellungsgruppe. Die Bereitstellungsgruppe verwaltet die fortlaufende Bereitstellung und das Rollback, falls erforderlich.
+ Erkennt, wenn Sie eine neue Version Ihrer Lambda-Funktion erstellen.
+ Löst aus CodeDeploy , um die Bereitstellung der neuen Version zu starten.

### Beispiel für AWS SAM eine Vorlage
<a name="sam-template"></a>

Das folgende Beispiel zeigt eine [AWS SAM -Vorlage](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-basics.html) für eine einfache fortlaufende Bereitstellung. 

```
AWSTemplateFormatVersion : '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: A sample SAM template for deploying Lambda functions

Resources:
# Details about the myDateTimeFunction Lambda function
  myDateTimeFunction:
    Type: [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html)
    Properties:
      Handler: myDateTimeFunction.handler
      Runtime: nodejs24.x
# Creates an alias named "live" for the function, and automatically publishes when you update the function.
      AutoPublishAlias: live
      DeploymentPreference:
# Specifies the deployment configuration
          Type: Linear10PercentEvery2Minutes
```

Diese Vorlage definiert eine Lambda-Funktion mit der Bezeichnung `myDateTimeFunction` und den folgenden Eigenschaften. 

**AutoPublishAlias **  
Die `AutoPublishAlias`-Eigenschaft erstellt einen Alias mit der Bezeichnung `live`. Darüber hinaus erkennt das AWS SAM -Framework automatisch, wenn Sie neuen Code für die Funktion speichern. Das Framework veröffentlicht dann eine neue Funktionsversion und aktualisiert den `live`-Alias so, dass er auf die neue Version verweist.

**DeploymentPreference**  
Die `DeploymentPreference` Eigenschaft bestimmt die Geschwindigkeit, mit der die CodeDeploy Anwendung den Datenverkehr von der ursprünglichen Version der Lambda-Funktion auf die neue Version verlagert. Der Wert `Linear10PercentEvery2Minutes` verschiebt alle zwei Minuten weitere zehn Prozent des Datenverkehrs zur neuen Version.   
Eine Liste der vordefinierten Bereitstellungskonfigurationen finden Sie unter [Bereitstellungskonfigurationen](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html). 

Weitere Informationen zum Erstellen fortlaufender Bereitstellungen mit CodeDeploy und AWS SAM finden Sie im Folgenden:
+ [Tutorial: Stellen Sie eine aktualisierte Lambda-Funktion bereit mit CodeDeploy und AWS Serverless Application Model](https://docs.aws.amazon.com/codedeploy/latest/userguide/tutorial-lambda-sam.html)
+ [Schrittweise Bereitstellung serverloser Anwendungen mit AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)