Implementa e richiama le funzioni durevoli Lambda con AWS CLI - AWS Lambda

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

Implementa e richiama le funzioni durevoli Lambda con AWS CLI

Usa il AWS CLI per creare e distribuire funzioni durevoli Lambda con comandi imperativi. Questo approccio ti offre il controllo diretto su ogni fase del processo di distribuzione.

Prerequisiti

  • Istalla e configura la AWS CLI. Per istruzioni, vedere Installazione di AWS CLI.

  • Crea un pacchetto di distribuzione con il codice della funzione e l'SDK di esecuzione durevole.

  • Crea un ruolo di esecuzione IAM con autorizzazioni di checkpoint.

Creazione del ruolo di esecuzione

Crea un ruolo IAM con autorizzazioni per l'esecuzione Lambda di base e le operazioni di checkpoint.

Per creare il ruolo di esecuzione
  1. Crea un documento sulla politica di fiducia che consenta a Lambda di assumere il ruolo. Salva questo cometrust-policy.json:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Crea il ruolo:

    aws iam create-role \ --role-name durable-function-role \ --assume-role-policy-document file://trust-policy.json
  3. Allega la politica di esecuzione duratura per le operazioni di checkpoint e l'esecuzione di base:

    aws iam attach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicDurableExecutionRolePolicy

La policy AWSLambdaBasicDurableExecutionRolePolicy gestita include le autorizzazioni necessarie per le operazioni di checkpoint (lambda:CheckpointDurableExecutionselambda:GetDurableExecutionState) e l'esecuzione di base di Lambda.

Crea la funzione duratura

Crea la tua funzione duratura con il --durable-config parametro.

Per creare una funzione duratura
  1. Package del codice della funzione con le dipendenze in un file.zip:

    zip -r function.zip index.mjs node_modules/
  2. Crea la funzione con l'esecuzione duratura abilitata:

    aws lambda create-function \ --function-name myDurableFunction \ --runtime nodejs22.x \ --role arn:aws:iam::123456789012:role/durable-function-role \ --handler index.handler \ --zip-file fileb://function.zip \ --durable-config '{"ExecutionTimeout": 3600, "RetentionPeriodInDays": 7}'
Nota

È possibile abilitare l'esecuzione duratura solo durante la creazione della funzione. Non è possibile abilitarla su funzioni esistenti.

Pubblica una versione

Sebbene le funzioni durevoli possano essere richiamate utilizzando il qualificatore di $LATEST versione, è necessario utilizzare sempre un ARN qualificato che punti a una versione stabile per garantire l'esecuzione deterministica del codice.

aws lambda publish-version \ --function-name myDurableFunction \ --description "Initial version"

Il comando restituisce la versione ARN. Annotate il numero di versione (ad esempio,:1) alla fine dell'ARN.

Facoltativamente, create un alias che punti alla versione:

aws lambda create-alias \ --function-name myDurableFunction \ --name prod \ --function-version 1

Invoca la funzione duratura

Richiama la tua funzione duratura utilizzando l'ARN qualificato (versione o alias).

Nota

Invocazioni idempotenti: per evitare esecuzioni duplicate quando si riprova una chiamata fallita, è possibile fornire un nome di esecuzione che garantisca la semantica dell'esecuzione. at-most-once Vedi Idempotenza per i dettagli.

Invocazione sincrona

Per le esecuzioni che vengono completate entro 15 minuti, usa la chiamata sincrona:

aws lambda invoke \ --function-name myDurableFunction:1 \ --payload '{"orderId": "order-12345"}' \ --cli-binary-format raw-in-base64-out \ response.json

O usando un alias:

aws lambda invoke \ --function-name myDurableFunction:prod \ --payload '{"orderId": "order-12345"}' \ --cli-binary-format raw-in-base64-out \ response.json
Invocazione asincrona

Per le esecuzioni di lunga durata, usa la chiamata asincrona:

aws lambda invoke \ --function-name myDurableFunction:prod \ --invocation-type Event \ --payload '{"orderId": "order-12345"}' \ --cli-binary-format raw-in-base64-out \ response.json

Con la chiamata asincrona, Lambda ritorna immediatamente. L'esecuzione della funzione continua in background.

Nota

È possibile utilizzarla $LATEST per la prototipazione e il test nella console. Per i carichi di lavoro di produzione, utilizza una versione o un alias pubblicati.

Gestisci esecuzioni durevoli

Utilizzate i seguenti comandi per gestire e monitorare le esecuzioni di funzioni durevoli.

Elenca le esecuzioni

Elenca tutte le esecuzioni per una funzione durevole:

aws lambda list-durable-executions-by-function \ --function-name myDurableFunction
Ottieni i dettagli dell'esecuzione

Ottieni dettagli su un'esecuzione specifica:

aws lambda get-durable-execution \ --durable-execution-arn arn:aws:lambda:us-east-1:123456789012:function:myDurableFunction:my-function-version/durable-execution/my-execution-name/my-execution-id
Ottieni la cronologia delle esecuzioni

Visualizza la cronologia dei checkpoint per un'esecuzione:

aws lambda get-durable-execution-history \ --durable-execution-arn arn:aws:lambda:us-east-1:123456789012:function:myDurableFunction:my-function-version/durable-execution/my-execution-name/my-execution-id
Interrompi un'esecuzione

Interrompi un'esecuzione durevole in esecuzione:

aws lambda stop-durable-execution \ --durable-execution-arn arn:aws:lambda:us-east-1:123456789012:function:myDurableFunction:my-function-version/durable-execution/my-execution-name/my-execution-id

Aggiornamento del codice della funzione

Aggiorna il codice della funzione durevole e pubblica una nuova versione:

Per aggiornare e pubblicare una nuova versione
  1. Aggiorna il codice della funzione:

    aws lambda update-function-code \ --function-name myDurableFunction \ --zip-file fileb://function.zip
  2. Attendi il completamento dell'aggiornamento:

    aws lambda wait function-updated \ --function-name myDurableFunction
  3. Pubblica una nuova versione:

    aws lambda publish-version \ --function-name myDurableFunction \ --description "Updated order processing logic"
  4. Aggiorna l'alias in modo che punti alla nuova versione:

    aws lambda update-alias \ --function-name myDurableFunction \ --name prod \ --function-version 2
Importante

Le esecuzioni in esecuzione continuano a utilizzare la versione con cui sono iniziate. Le nuove chiamate utilizzano la versione aggiornata dell'alias.

Visualizzare i log delle funzioni

Visualizza i log della tua funzione durevole in Logs: CloudWatch

aws logs tail /aws/lambda/myDurableFunction --follow

Filtra i log per un'esecuzione specifica:

aws logs filter-log-events \ --log-group-name /aws/lambda/myDurableFunction \ --filter-pattern "exec-abc123"

Eseguire la pulizia delle risorse

Elimina la tua funzione durevole e le risorse associate:

# Delete the function aws lambda delete-function --function-name myDurableFunction # Delete the IAM role policies aws iam detach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole aws iam detach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicDurableExecutionRolePolicy # Delete the role aws iam delete-role --role-name durable-function-role

Fasi successive

Dopo aver implementato la funzione duratura con: AWS CLI

  • Monitora le esecuzioni utilizzando i list-durable-executions comandi and get-durable-execution

  • Visualizza le operazioni dei checkpoint negli eventi relativi ai dati AWS CloudTrail

  • Imposta CloudWatch allarmi per errori di esecuzione o esecuzioni di lunga durata

  • Automatizza le distribuzioni utilizzando script o pipeline di shell CI/CD

Per ulteriori informazioni sui AWS CLI comandi per Lambda, consulta il AWS CLI Command Reference.