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
-
Crea un documento sulla politica di fiducia che consenta a Lambda di assumere il ruolo. Salva questo come
trust-policy.json:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } -
Crea il ruolo:
aws iam create-role \ --role-name durable-function-role \ --assume-role-policy-document file://trust-policy.json -
Allega la politica di esecuzione di base:
aws iam attach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole -
Crea una politica per le operazioni ai checkpoint. Salva questo come
checkpoint-policy.json:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:CheckpointDurableExecutions", "lambda:GetDurableExecutionState" ], "Resource": "arn:aws:lambda:REGION:ACCOUNT_ID:function:myDurableFunction" } ] } -
Crea e allega la politica del checkpoint:
aws iam create-policy \ --policy-name durable-checkpoint-policy \ --policy-document file://checkpoint-policy.json aws iam attach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::ACCOUNT_ID:policy/durable-checkpoint-policy
Crea la funzione durevole
Crea la tua funzione duratura con il --durable-config parametro.
Per creare una funzione duratura
-
Package del codice della funzione con le dipendenze in un file.zip:
zip -r function.zip index.mjs node_modules/ -
Crea la funzione con l'esecuzione duratura abilitata:
aws lambda create-function \ --function-name myDurableFunction \ --runtime nodejs22.x \ --role arn:aws:iam::ACCOUNT_ID:role/durable-function-role \ --handler index.handler \ --zip-file fileb://function.zip \ --durable-config '{"ExecutionTimeout": 10, "RetentionPeriodInDays":1}'
Nota
È possibile abilitare l'esecuzione duratura solo durante la creazione della funzione. Non è possibile abilitarla su funzioni esistenti.
Pubblica una versione
Le funzioni durevoli richiedono un ARN qualificato (con versione o alias) per la chiamata. Pubblica una versione della tua funzione:
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).
Invocazione sincrona
Per le esecuzioni che vengono completate entro 15 minuti, usa l'invocazione 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.
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 \ --function-name myDurableFunction:prod
Ottieni i dettagli dell'esecuzione
Ottieni dettagli su un'esecuzione specifica:
aws lambda get-durable-execution \ --function-name myDurableFunction:prod \ --execution-id exec-abc123
Ottieni la cronologia delle esecuzioni
Visualizza la cronologia dei checkpoint per un'esecuzione:
aws lambda get-durable-execution-history \ --function-name myDurableFunction:prod \ --execution-id exec-abc123
Interrompi un'esecuzione
Interrompi un'esecuzione durevole in esecuzione:
aws lambda stop-durable-execution \ --function-name myDurableFunction:prod \ --execution-id exec-abc123
Aggiornamento del codice della funzione
Aggiorna il codice della funzione durevole e pubblica una nuova versione:
Per aggiornare e pubblicare una nuova versione
-
Aggiorna il codice della funzione:
aws lambda update-function-code \ --function-name myDurableFunction \ --zip-file fileb://function.zip -
Attendi il completamento dell'aggiornamento:
aws lambda wait function-updated \ --function-name myDurableFunction -
Pubblica una nuova versione:
aws lambda publish-version \ --function-name myDurableFunction \ --description "Updated order processing logic" -
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::ACCOUNT_ID:policy/durable-checkpoint-policy aws iam delete-policy \ --policy-arn arn:aws:iam::ACCOUNT_ID:policy/durable-checkpoint-policy # 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-executionscomandi andget-durable-executionVisualizza 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.