AWS Lambda distribuire un riferimento all'azione - AWS CodePipeline

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWS Lambda distribuire un riferimento all'azione

Utilizzi un'azione di AWS Lambda distribuzione per gestire la distribuzione del codice dell'applicazione per la distribuzione senza server. È possibile implementare una funzione e utilizzare strategie di distribuzione per la distribuzione del traffico come segue:

  • Implementazioni canarie e lineari per lo spostamento del traffico

  • Implementazioni tutte in una volta

Nota

Questa azione è supportata solo per le pipeline di tipo V2.

Tipo di operazione

  • Categoria: Deploy

  • Proprietario: AWS

  • Provider: Lambda

  • Versione: 1

Parametri di configurazione

FunctionName

Campo obbligatorio: sì

Il nome della funzione che hai creato in Lambda, ad esempio. MyLambdaFunction

Devi aver già creato una versione.

FunctionAlias

Campo obbligatorio: no

L'alias della funzione che hai creato in Lambda ed è la funzione su cui distribuire, ad esempio. live L'alias deve esistere e deve avere una versione supportata quando iniziano le esecuzioni delle azioni. (Sarà la versione di destinazione del rollback.)

Se non viene fornita, l'azione distribuisce l'artefatto di origine $LATEST e ne crea una nuova versione. In questo caso d'uso, le opzioni relative alla strategia di distribuzione e alla versione di destinazione non sono disponibili.

PublishedTargetVersion

Campo obbligatorio: no

La versione della funzione Lambda desiderata su cui distribuire. FunctionAlias Possono essere variabili a livello di pipeline o di azione, ad esempio. #{variables.lambdaTargetVersion} La versione deve essere pubblicata all'avvio dell'esecuzione dell'azione.

Obbligatorio se non viene fornito alcun elemento di input.

DeployStrategy

Obbligatorio: No (l'impostazione predefinita è) AllAtOnce

Determina la velocità che l'azione di distribuzione Lambda adotta per spostare il traffico dalla versione originale della funzione Lambda alla nuova versione per. FunctionAlias Le strategie di implementazione disponibili sono canarie o lineari. Formati accettati:

  • AllAtOnce -

    Sposta tutto il traffico verso le funzioni Lambda aggiornate contemporaneamente.

    Se non specificato, l'impostazione predefinita è) AllAtOnce

  • Canary10Percent5Minutes- Sposta il 10 percento del traffico nel primo incremento. Il restante 90% viene reinstradato cinque minuti più tardi.

    I valori della percentuale e dei minuti possono essere modificati.

  • Linear10PercentEvery1Minute- Sposta il 10% del traffico ogni minuto fino a quando tutto il traffico non viene spostato.

    I valori della percentuale e dei minuti possono essere modificati.

Le seguenti considerazioni si applicano a questo campo:

  • Il tempo di attesa totale massimo è di 2 giorni.

  • Disponibile solo quando FunctionAliasviene fornito.

Allarmi

Campo obbligatorio: no

Un elenco separato da virgole di nomi di allarmi configurati per la distribuzione Lambda. È possibile aggiungere un massimo di 10 allarmi. L'azione fallisce quando gli allarmi monitorati passano allo stato ALARM.

L'immagine seguente mostra un esempio della pagina Modifica dell'azione.

La pagina Modifica azione per una nuova pipeline con l'azione di distribuzione Lambda

Input artifact (Artefatti di input)

  • Numero di artefatti: 1

  • Descrizione: i file forniti, se presenti, per supportare le azioni dello script durante la distribuzione.

Artefatti di output

  • Numero di artefatti: 0

  • Descrizione: gli artefatti di output non si applicano a questo tipo di azione.

Variabili di output

Quando è configurata, questa azione produce variabili che possono essere referenziate dalla configurazione dell'azione di un'azione downstream nella pipeline. Questa azione produce variabili che possono essere viste come variabili di output, anche se l'azione non ha uno spazio dei nomi. È possibile configurare un'azione con uno spazio dei nomi per rendere tali variabili disponibili per la configurazione delle azioni downstream.

Per ulteriori informazioni, consulta Riferimento alle variabili.

FunctionVersion

La nuova versione della funzione Lambda che è stata distribuita.

Autorizzazioni della policy del ruolo di servizio per l'azione di distribuzione Lambda

Quando CodePipeline esegue l'azione, il ruolo di CodePipeline servizio richiede le seguenti autorizzazioni, specificate in modo appropriato per l'accesso con il privilegio minimo.

{ "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:aws:{{customerAccountId}}:function:{{FunctionName}}", "arn:aws:lambda:aws:{{customerAccountId}}:function:{{FunctionName}}:*" ] }, { "Sid": "StatementForCloudWatch", "Effect": "Allow", "Action": [ "cloudwatch:DescribeAlarms" ], "Resource": [ "arn:aws:cloudwatch:aws:{{customerAccountId}}:alarm:{{AlarmNames}}" ] }, { "Sid": "StatementForLogs1", "Effect": "Allow", "Action": [ "logs:CreateLogGroup" ], "Resource": [ "arn:aws:logs:aws:{{customerAccountId}}:log-group:/aws/codepipeline/{{pipelineName}}", "arn:aws:logs:aws:{{customerAccountId}}:log-group:/aws/codepipeline/{{pipelineName}}:*" ] }, { "Sid": "StatementForLogs2", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:aws:{{customerAccountId}}:log-group:/aws/codepipeline/{{pipelineName}}:log-stream:*" ] } ] }

Dichiarazione dell'operazione

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" },

Le risorse correlate seguenti possono essere utili durante l'utilizzo di questa operazione.