AWS Lambda Referenz zur Bereitstellung von Aktionen - 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 Referenz zur Bereitstellung von Aktionen

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

  • Kanarische und lineare Bereitstellungen für die 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 Bereitstellung vorgesehen ist, z. B. live Der Alias muss existieren und hinter ihm muss eine Version stehen, wenn die Ausführung der Aktion gestartet wird. (Es wird die Rollback-Zielversion sein.)

Falls 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 Dabei kann es sich um Variablen auf Pipeline- oder Aktionsebene handeln, wie #{variables.lambdaTargetVersion} z. Die Version muss veröffentlicht werden, wenn die Ausführung der Aktion gestartet wird.

Erforderlich, wenn kein Eingabeartefakt bereitgestellt wird.

DeployStrategy

Erforderlich: Nein (Standard istAllAtOnce)

Bestimmt die Geschwindigkeit, mit der die Lambda-Bereitstellungsaktion den Datenverkehr von der ursprünglichen Version der Lambda-Funktion auf die neue Version umleitet. FunctionAlias Verfügbare Bereitstellungsstrategien sind kanarisch oder linear. Zulässige Formate:

  • AllAtOnce -

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

    Falls nicht angegeben, ist AllAtOnce die Standardeinstellung)

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

Für dieses Feld gelten die folgenden Überlegungen:

  • Die maximale Gesamtwartezeit beträgt 2 Tage.

  • Nur verfügbar, FunctionAliaswenn 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 ALARM-Status wechseln.

Die folgende Abbildung zeigt ein Beispiel für die Bearbeitungsseite für die Aktion.

Die Aktionsseite „Aktion bearbeiten“ für eine neue Pipeline mit der Aktion Lambda Deploy

Input artifacts (Eingabeartefakte)

  • Anzahl der Artefakte: 1

  • Beschreibung: Die bereitgestellten Dateien, falls vorhanden, um die Skriptaktionen während der Bereitstellung zu unterstützen.

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 Variablen-Referenz.

FunctionVersion

Die neue Lambda-Funktionsversion, die bereitgestellt wurde.

Berechtigungen der Servicerollenrichtlinie für die Lambda-Bereitstellungsaktion

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.