Lambda-Funktionsaliase - AWS Lambda

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.

Lambda-Funktionsaliase

Sie können für Ihre Lambda-Funktion Aliasse erstellen. Ein Lambda-Alias ist ein Zeiger auf eine Version einer Funktion, der aktualisiert werden kann. Die Benutzer der Funktion können über den Amazon-Ressourcennamen (ARN) des Alias auf die Funktionsversion zugreifen. Wenn Sie eine neue Version bereitstellen, können Sie den Alias aktualisieren, um ihn auf die neue Version umzustellen oder den Datenverkehr zwischen zwei Versionen aufzuteilen.

Erstellen eines Funktionsalias (Konsole)

Sie können einen Funktionsalias mit der Lambda-Konsole erstellen.

Erstellen eines Alias
  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie eine Funktion aus.

  3. Wählen Sie Aliasse und dann Alias erstellen aus.

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

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

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

    3. Wählen Sie unter Version, eine Funktionsversion aus, auf die der Alias verweisen soll.

    4. (Optional) Um das Routing für den Alias zu konfigurieren, erweitern Sie den Eintrag Gewichteter Alias. Weitere Informationen finden Sie unter Alias-Weiterleitungskonfiguration.

    5. Wählen Sie Save (Speichern) aus.

Verwalten von Aliassen mit der Lambda-API

Verwenden Sie den Befehl AWS Command Line Interface, um einen Alias mit der AWS CLI (create-alias) zu erstellen.

aws lambda create-alias --function-name my-function --name alias-name --function-version version-number --description " "

Verwenden Sie den Befehl update-alias, um einen Alias so zu ändern, dass er auf eine neue Version der Funktion verweist.

aws lambda update-alias --function-name my-function --name alias-name --function-version version-number

Verwenden Sie den Befehl delete-alias, um einen Alias zu löschen.

aws lambda delete-alias --function-name my-function --name alias-name

Die obigen AWS CLI-Befehle entsprechen den folgenden Lambda-API-Aktionen.

Verwaltung von Aliasen mit AWS SAM und AWS CloudFormation

Mit AWS Serverless Application Model (AWS SAM) und AWS CloudFormation können Sie Funktionsaliase erstellen und verwalten.

Informationen zum Deklarieren eines Funktionsalias in einer AWS SAM-Vorlage finden Sie auf der Seite AWS::Serverless::Function im AWS SAM-Entwicklerhandbuch. Informationen zum Erstellen und Konfigurieren von Aliasen mithilfe von AWS CloudFormation finden Sie unter AWS::Lambda::Alias im AWS CloudFormation-Benutzerhandbuch.

Verwenden von Aliassen

Jeder Alias hat einen eindeutigen ARN. Ein Alias kann nur auf eine Funktionsversion verweisen, nicht auf einen anderen Alias. Sie können einen Alias aktualisieren, um auf eine neue Version der Funktion zu verweisen.

Ereignisquellen wie Amazon Simple Storage Service (Amazon S3) rufen Ihre Lambda-Funktion auf. Diese Ereignisquellen pflegen eine Zuweisung, die die Funktion identifiziert, die beim Auftreten von Ereignissen aufgerufen werden soll. Wenn Sie in der Mappingkonfiguration einen Lambda-Funktionsalias angeben, müssen Sie das Mapping nicht aktualisieren, wenn sich die Funktionsversion ändert. Weitere Informationen finden Sie unter Lambda-Ereignisquellenzuweisung.

In einer Ressourcenrichtlinie können Sie Berechtigungen für Ereignisquellen zur Verwendung Ihrer Lambda-Funktion erteilen. Wenn Sie in der Richtlinie einen Alias-ARN angeben, müssen Sie die Richtlinie nicht aktualisieren, wenn sich die Funktionsversion ändert.

Ressourcenrichtlinien

Sie können eine ressourcenbasierte Richtlinie verwenden, um einem Dienst, einer Ressource oder einem Konto Zugriff auf Ihre Funktion zu gewähren. Der Umfang dieser Berechtigung hängt davon ab, ob Sie sie auf einen Alias, eine Version oder die gesamte Funktion anwenden. Wenn Sie beispielsweise einen Aliasnamen verwenden (z. B. helloworld:PROD), gewährt Ihnen die Berechtigung, die Funktion helloworld mithilfe des ARN des Alias (helloworld:PROD) aufzurufen.

Wenn Sie versuchen, die Funktion ohne Alias oder eine bestimmte Version aufzurufen, erhalten Sie einen Berechtigungsfehler. Dieser Berechtigungsfehler tritt weiterhin auf, selbst wenn Sie versuchen, die dem Alias zugeordnete Funktionsversion direkt aufzurufen.

Der folgende AWS CLI-Befehl erteilt beispielsweise Amazon-S3-Berechtigungen zum Aufrufen des PROD-Alias der Funktion helloworld, wenn Amazon S3 im Auftrag von examplebucket handelt.

aws lambda add-permission --function-name helloworld \ --qualifier PROD --statement-id 1 --principal s3.amazonaws.com --action lambda:InvokeFunction \ --source-arn arn:aws:s3:::examplebucket --source-account 123456789012

Weitere Hinweise zum Verwenden von Ressourcennamen in Richtlinien finden Sie unter Ressourcen und Bedingungen für Lambda-Aktionen.

Alias-Weiterleitungskonfiguration

Verwenden Sie die Weiterleitungskonfiguration für einen Alias, um einen Teil des Datenverkehrs an eine zweite Funktionsversion zu senden. Beispielsweise können Sie das Risiko der Bereitstellung einer neuen Version verringern, indem Sie den Alias so konfigurieren, dass der größte Teil des Datenverkehrs an die vorhandene Version gesendet wird, und nur ein geringer Prozentsatz des Datenverkehrs an die neue Version.

Beachten Sie, dass Lambda ein einfaches probabilistisches Modell verwendet, 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 durch Konfigurieren einer höheren Anzahl von bereitgestellten Parallelitätsinstances während des aktiven Alias-Routings vermeiden.

Sie können ein Alias auf maximal zwei Lambda-Funktionsversionen verweisen lassen. Die Versionen müssen folgende Kriterien erfüllen:

Konfigurieren des Routings für einen Alias
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 Versionen der Lambda-Funktion.

  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie eine Funktion aus.

  3. Wählen Sie Aliasse und dann Alias erstellen aus.

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

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

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

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

    4. Erweitern Sie Gewichteter Alias.

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

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

    7. Wählen Sie Save aus.

Konfigurieren des Alias-Routings mithilfe der CLI

Verwenden Sie die create-alias-Befehle update-alias und AWS CLI, um die Gewichtung des Datenverkehrs 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 obigen AWS CLI-Befehle entsprechen den folgenden Lambda-API-Aktionen.

Feststellen, welche Version aufgerufen wurde

Wenn Sie Datenverkehrsgewichtungen zwischen zwei Funktionsversionen konfigurieren, gibt es zwei Möglichkeiten, die aufgerufene Lambda-Funktionsversion zu bestimmen:

  • CloudWatch Protokolle – Lambda gibt für jeden Funktionsaufruf automatisch einen START Protokolleintrag an Amazon CloudWatch Logs aus, der die ID der aufgerufenen Version enthält. Im Folgenden wird ein Beispiel gezeigt:

    19:44:37 START RequestId: request id Version: $version

    Für Aliasaufrufe verwendet Lambda die Dimension Executed Version zum Filtern der Metrikdaten nach aufgerufener Version. Weitere Informationen finden Sie unter Arbeiten mit Lambda-Funktionsmetriken.

  • Antwortnutzlast (synchrone Aufrufe) – Antworten auf synchrone Funktionsaufrufe enthalten einen x-amz-executed-version-Header, der angibt, welche Funktionsversion aufgerufen wurde.