View a markdown version of this page

AWS Lambda riferimento all'azione di distribuzione - 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 riferimento all'azione di distribuzione

Si utilizza un'azione di AWS Lambda distribuzione per gestire la distribuzione del codice dell'applicazione per la distribuzione serverless. È possibile implementare una funzione e utilizzare le 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

Obbligatorio: sì

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

Devi aver già creato una versione.

FunctionAlias

Obbligatorio: no

L'alias della funzione che hai creato in Lambda ed è la funzione a cui distribuire, ad esempio. live L'alias deve esistere e avere una sola versione all'avvio dell'esecuzione dell'azione. (Sarà la versione di destinazione del rollback.)

Se non viene fornita, l'azione distribuisce l'artefatto di origine $LATEST e 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

Obbligatorio: no

La versione desiderata della funzione Lambda in cui implementare. FunctionAlias Può trattarsi di 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à adottata dall'azione di distribuzione Lambda per spostare il traffico dalla versione originale della funzione Lambda alla nuova versione per. FunctionAlias Le strategie di distribuzione disponibili sono canarie o lineari. Formati accettati:

  • AllAtOnce -

    Sposta tutto il traffico verso le funzioni Lambda aggiornate contemporaneamente.

    Se non si specifica un valore predefinito, viene utilizzato AllAtOnce.

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

    I valori relativi alla percentuale e ai minuti possono essere modificati.

  • Linear10PercentEvery1Minute- Sposta il 10% del traffico ogni minuto fino a spostare tutto il traffico.

    I valori relativi alla percentuale e ai minuti possono essere modificati.

Per questo campo valgono le seguenti considerazioni:

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

  • Disponibile solo FunctionAlias se fornito.

Allarmi

Obbligatorio: no

Un elenco separato da virgole di nomi di allarme configurati per l'implementazione Lambda. È possibile aggiungere un massimo di 10 allarmi. L'azione ha esito negativo quando gli allarmi monitorati passano allo stato ALARM.

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

La pagina di azione Modifica 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 implementata.

Ruolo di servizio, policy, autorizzazioni per l'azione di distribuzione Lambda

Quando CodePipeline esegue l'azione, il ruolo CodePipeline di servizio richiede le seguenti autorizzazioni, opportunamente limitate per l'accesso con i privilegi minimi.

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:*" ] } ] }

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.