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-Bereitstellungen unterscheiden sich von Blau/Grün-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 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 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. -
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 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
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: nodejs18.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
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 WertLinear10PercentEvery2Minutes
verschiebt alle zwei Minuten weitere zehn Prozent des Datenverkehrs zur neuen Version.Eine Liste der vordefinierten Bereitstellungskonfigurationen finden Sie unter Bereitstellungskonfigurationen.
Weitere Informationen zum Erstellen fortlaufender Bereitstellungen mit CodeDeploy und AWS SAM finden Sie im Folgenden: