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
Sie können einen gewichteten Alias verwenden, um den Datenverkehr auf zwei verschiedene Versionen 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 bezeichnet. Canary-Deployments unterscheiden sich von blue/green Deployments dadurch, dass die neue Version nur einem Teil der Anfragen ausgesetzt wird, anstatt den gesamten Traffic auf einmal umzuschalten.
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 haben.
-
Beide Versionen müssen die gleiche Warteschlangenkonfiguration für unzustellbare Nachrichten 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 durch Konfigurieren einer höheren Anzahl von bereitgestellten Parallelitätsinstances während des aktiven Alias-Routings vermeiden.
Einen gewichteten Alias erstellen
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 automatisch einen
STARTLogeintrag aus, der die aufgerufene Versions-ID für jeden Funktionsaufruf enthält. Beispiel:START RequestId: 1dh194d3759ed-4v8b-a7b4-1e541f60235f Version:2Für Aliasaufrufe verwendet Lambda die Dimension
ExecutedVersionzum Filtern der Metrikdaten nach aufgerufener Version. Weitere Informationen finden Sie unter Anzeigen von Metriken für Lambda-Funktionen. -
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
Verwenden Sie AWS CodeDeploy and AWS Serverless Application Model (AWS SAM), um eine fortlaufende Bereitstellung zu erstellen, die Änderungen an Ihrem Funktionscode automatisch erkennt, eine neue Version Ihrer Funktion bereitstellt und den Traffic, 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 Anwendungs- und Bereitstellungsgruppe. Die Bereitstellungsgruppe verwaltet die fortlaufende Bereitstellung und das Rollback, falls erforderlich.
-
Erkennt, wenn Sie eine neue Version Ihrer Lambda-Funktion erstellen.
-
Wird ausgelöst CodeDeploy , um die Bereitstellung der neuen Version zu starten.
Beispiel AWS SAM Vorlage
Das folgende Beispiel zeigt eine AWS SAM -Vorlage 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 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 Bezeichnunglive. 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 denlive-Alias so, dass er auf die neue Version verweist. - DeploymentPreference
-
Die
DeploymentPreferenceEigenschaft bestimmt die Geschwindigkeit, mit der die CodeDeploy Anwendung den Datenverkehr von der Originalversion der Lambda-Funktion auf die neue Version umleitet. Der WertLinear10PercentEvery2Minutesverschiebt alle 2 Minuten weitere 10 Prozent des Datenverkehrs auf die neue Version.Eine Liste der vordefinierten Bereitstellungskonfigurationen finden Sie unter Bereitstellungskonfigurationen.
Weitere Informationen zum Erstellen von fortlaufenden Bereitstellungen mit CodeDeploy und AWS SAM finden Sie unter den folgenden Links: