View a markdown version of this page

AWS Lambda Aktionsreferenz bereitstellen - AWS CodePipeline

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.

AWS Lambda Aktionsreferenz bereitstellen

Sie verwenden eine AWS Lambda Bereitstellungsaktion, um die Bereitstellung Ihres Anwendungscodes für Ihre serverlose Bereitstellung zu verwalten. Sie können eine Funktion bereitstellen und Bereitstellungsstrategien für die Bereitstellung des Datenverkehrs wie folgt verwenden:

  • Kanarische und lineare Bereitstellungen zur Verkehrsverlagerung

  • Bereitstellungen auf einmal

Anmerkung

Diese Aktion wird nur für Pipelines vom Typ V2 unterstützt.

Aktionstyp

  • Kategorie: Deploy

  • Eigentümer: AWS

  • Anbieter: Lambda

  • Version: 1

Konfigurationsparameter

FunctionName

Erforderlich: Ja

Der Name der Funktion, die Sie in Lambda erstellt haben, z. B. MyLambdaFunction

Sie müssen bereits eine Version erstellt haben.

FunctionAlias

Erforderlich: Nein

Der Alias der Funktion, die Sie in Lambda erstellt haben und für die die Funktion bereitgestellt werden soll, z. B. live Der Alias muss existieren und eine Version dahinter haben, wenn die Aktionsausführung beginnt. (Es wird die Rollback-Zielversion sein.)

Wenn nicht angegeben, stellt die Aktion das Quellartefakt bereit $LATEST und erstellt eine neue Version. In diesem Anwendungsfall sind die Optionen für die Bereitstellungsstrategie und die Zielversion nicht verfügbar.

PublishedTargetVersion

Erforderlich: Nein

Die gewünschte Lambda-Funktionsversion, für die bereitgestellt werden soll. FunctionAlias Es können Variablen auf Pipeline- oder Aktionsebene sein, z. B. #{variables.lambdaTargetVersion} Die Version muss veröffentlicht werden, wenn die Aktionsausführung beginnt.

Erforderlich, wenn kein Eingabeartefakt bereitgestellt wird.

DeployStrategy

Erforderlich: Nein (Standardeinstellung istAllAtOnce)

Legt die Rate fest, mit der die Lambda-Bereitstellungsaktion den Datenverkehr von der Originalversion der Lambda-Funktion auf die neue Version umleitet. FunctionAlias Die verfügbaren Bereitstellungsstrategien sind kanarisch oder linear. Zulässige Formate:

  • AllAtOnce -

    Leitet den gesamten Datenverkehr auf einmal auf die aktualisierten Lambda-Funktionen um.

    Wenn nichts angegeben ist, ist der Standardwert AllAtOnce.

  • Canary10Percent5Minutes- Verschiebt 10 Prozent des Datenverkehrs in der ersten Stufe. Die restlichen 90 Prozent werden fünf Minuten später bereitgestellt.

    Die Werte sowohl für den Prozentsatz als auch für die Minuten können geändert werden.

  • Linear10PercentEvery1Minute- Verschiebt jede Minute 10 Prozent des Verkehrs, bis der gesamte Verkehr verlagert ist.

    Die Werte sowohl für den Prozentsatz als auch für die Minuten können geändert werden.

Die folgenden Überlegungen gelten für dieses Feld:

  • Die maximale Wartezeit beträgt insgesamt 2 Tage.

  • Nur verfügbar, FunctionAlias wenn angegeben.

Alarme

Erforderlich: Nein

Eine durch Kommas getrennte Liste von Alarmnamen, die für die Lambda-Bereitstellung konfiguriert wurden. Es können höchstens 10 Alarme hinzugefügt werden. Die Aktion schlägt fehl, wenn überwachte Alarme in den Status ALARM übergehen.

Die folgende Abbildung zeigt ein Beispiel für die Seite „Bearbeiten“ für die Aktion.

Die Aktionsseite „Bearbeiten“ für eine neue Pipeline mit der Lambda-Deployment-Aktion

Input artifacts (Eingabeartefakte)

  • Anzahl der Artefakte: 1

  • Beschreibung: Die bereitgestellten Dateien, falls vorhanden, zur Unterstützung der Skriptaktionen während der Bereitstellung.

Ausgabeartefakte

  • Anzahl der Artefakte: 0

  • Beschreibung: Ausgabeartefakte gelten nicht für diesen Aktionstyp.

Ausgabevariablen

Wenn dies konfiguriert ist, werden durch diese Aktion Variablen erzeugt, die von der Aktionskonfiguration einer nachgeschalteten Aktion in der Pipeline referenziert werden können. Diese Aktion erzeugt Variablen, die als Ausgabevariablen angezeigt werden können, auch wenn die Aktion keinen Namespace hat. Sie konfigurieren eine Aktion mit einem Namespace, um diese Variablen für die Konfiguration nachgeschalteter Aktionen zur Verfügung zu stellen.

Weitere Informationen finden Sie unter Variablenreferenz.

FunctionVersion

Die neue Lambda-Funktionsversion, die bereitgestellt wurde.

Berechtigungen für die Lambda-Bereitstellungsaktion (Richtlinie) für die Aktion „Lambda-Bereitstellung“

Wenn die Aktion CodePipeline ausgeführt wird, benötigt die CodePipeline Servicerolle die folgenden Berechtigungen, die entsprechend auf den Zugriff mit den geringsten Rechten beschränkt sind.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "StatementForLambda", "Effect": "Allow", "Action": [ "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:GetProvisionedConcurrencyConfig", "lambda:PublishVersion", "lambda:UpdateAlias", "lambda:UpdateFunctionCode" ], "Resource": [ "arn:aws:lambda:us-east-1:111122223333:function:{{FunctionName}}", "arn:aws:lambda:us-east-1:111122223333:function:{{FunctionName}}:*" ] }, { "Sid": "StatementForCloudWatch", "Effect": "Allow", "Action": [ "cloudwatch:DescribeAlarms" ], "Resource": [ "arn:aws:cloudwatch:us-east-1:111122223333:alarm:{{AlarmNames}}" ] }, { "Sid": "StatementForLogs1", "Effect": "Allow", "Action": [ "logs:CreateLogGroup" ], "Resource": [ "arn:aws:logs:us-east-1:111122223333:log-group:/us-east-1/codepipeline/{{pipelineName}}", "arn:aws:logs:us-east-1:111122223333:log-group:/us-east-1/codepipeline/{{pipelineName}}:*" ] }, { "Sid": "StatementForLogs2", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:111122223333:log-group:/us-east-1/codepipeline/{{pipelineName}}:log-stream:*" ] } ] }

Aktionsdeklaration

YAML
name: Deploy actionTypeId: category: Deploy owner: AWS provider: Lambda version: '1' runOrder: 1 configuration: DeployStrategy: Canary10Percent5Minutes FunctionAlias: aliasV1 FunctionName: MyLambdaFunction outputArtifacts: [] inputArtifacts: - name: SourceArtifact region: us-east-1 namespace: DeployVariables
JSON
{ "name": "Deploy", "actionTypeId": { "category": "Deploy", "owner": "AWS", "provider": "Lambda", "version": "1" }, "runOrder": 1, "configuration": { "DeployStrategy": "Canary10Percent5Minutes", "FunctionAlias": "aliasV1", "FunctionName": "MyLambdaFunction" }, "outputArtifacts": [], "inputArtifacts": [ { "name": "SourceArtifact" } ], "region": "us-east-1", "namespace": "DeployVariables" },

Die folgenden verwandten Ressourcen bieten Ihnen nützliche Informationen für die Arbeit mit dieser Aktion.

  • Tutorial: Bereitstellung von Lambda-Funktionen mit CodePipeline— Dieses Tutorial führt Sie durch die Erstellung einer Lambda-Beispielfunktion, in der Sie einen Alias und eine Version erstellen, die komprimierte Lambda-Funktion zu Ihrem Quellspeicherort hinzufügen und die Lambda-Aktion in Ihrer Pipeline ausführen.