Implemente e invoque funções duráveis do Lambda com a AWS CLI
Use a AWS CLI para criar e implantar funções duráveis do Lambda com comandos imperativos. Essa abordagem oferece controle direto sobre cada etapa do processo de implantação.
Pré-requisitos
Instale e configure a . AWS CLI. Para obter instruções, consulte Instalação da AWS CLI.
Crie um pacote de implantação com o código de função e o SDK de execução durável.
Crie um perfil de execução no IAM com a permissões para pontos de verificação.
Criar a função de execução
Crie um perfil do IAM com permissões para operações básicas de execução e ponto de verificação do Lambda.
Para criar a função de execução
-
Crie um documento de política de confiança que permita que o Lambda assuma o perfil. Salve-a como
trust-policy.json:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } -
Crie a função:
aws iam create-role \ --role-name durable-function-role \ --assume-role-policy-document file://trust-policy.json -
Anexe a política básica de execução:
aws iam attach-role-policy \ --role-name durable-function-role \ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole -
Crie uma política para operações de pontos de verificação. Salve-a como
checkpoint-policy.json:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:CheckpointDurableExecutions", "lambda:GetDurableExecutionState" ], "Resource": "arn:aws:lambda:REGION:ACCOUNT_ID:function:myDurableFunction" } ] } -
Crie e anexe a política de ponto de verificação:
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
Criação da função durável
Crie sua função durável com o parâmetro --durable-config.
Para criar uma função durável
-
Empacote seu código de função com as dependências em um arquivo .zip:
zip -r function.zip index.mjs node_modules/ -
Crie a função com a execução durável habilitada:
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
Você só pode habilitar a execução durável ao criar a função. Não é possível habilitá-la em funções existentes.
Publicação de uma versão
As funções duráveis exigem um ARN qualificado (com versão ou alias) para invocação. Publique uma versão da sua função:
aws lambda publish-version \ --function-name myDurableFunction \ --description "Initial version"
O comando retorna o ARN da versão. Anote o número da versão (por exemplo, :1) no final do ARN.
Opcionalmente, crie um alias que aponte para a versão.
aws lambda create-alias \ --function-name myDurableFunction \ --name prod \ --function-version 1
Invocação da função durável
Invoque sua função durável usando o ARN qualificado (versão ou alias).
Invocação síncrona
Para execuções concluídas dentro de 15 minutos, use a invocação síncrona:
aws lambda invoke \ --function-name myDurableFunction:1 \ --payload '{"orderId": "order-12345"}' \ --cli-binary-format raw-in-base64-out \ response.json
Ou usando um alias:
aws lambda invoke \ --function-name myDurableFunction:prod \ --payload '{"orderId": "order-12345"}' \ --cli-binary-format raw-in-base64-out \ response.json
Invocação assíncrona
Para execuções de longa duração, use a invocação assíncrona:
aws lambda invoke \ --function-name myDurableFunction:prod \ --invocation-type Event \ --payload '{"orderId": "order-12345"}' \ --cli-binary-format raw-in-base64-out \ response.json
Com a invocação assíncrona, o Lambda retorna imediatamente. A função continua em execução em segundo plano.
Gerenciamento de execuções duráveis
Use os comandos a seguir para gerenciar e monitorar execuções de funções duráveis
Execuções de lista
Liste todas as execuções de uma função durável:
aws lambda list-durable-executions \ --function-name myDurableFunction:prod
Obtenção dos detalhes da execução
Obtenha detalhes sobre uma execução específica:
aws lambda get-durable-execution \ --function-name myDurableFunction:prod \ --execution-id exec-abc123
Obtenção do histórico de execução
Visualize o histórico de pontos de verificação de uma execução:
aws lambda get-durable-execution-history \ --function-name myDurableFunction:prod \ --execution-id exec-abc123
Interrupção de uma execução
Interrompa uma execução durável em andamento:
aws lambda stop-durable-execution \ --function-name myDurableFunction:prod \ --execution-id exec-abc123
Atualizar um código de função
Atualize o código da sua função durável e publique uma nova versão:
Para atualizar e publicar uma nova versão
-
Atualize o código da função:
aws lambda update-function-code \ --function-name myDurableFunction \ --zip-file fileb://function.zip -
Aguarde até que a atualização seja concluída:
aws lambda wait function-updated \ --function-name myDurableFunction -
Publique uma nova versão:
aws lambda publish-version \ --function-name myDurableFunction \ --description "Updated order processing logic" -
Atualize o alias para apontar para a nova versão.
aws lambda update-alias \ --function-name myDurableFunction \ --name prod \ --function-version 2
Importante
As execuções em andamento continuam usando a versão com a qual foram iniciadas. Novas invocações usarão a versão atualizada do alias.
Visualizar logs de função
Visualize os logs da sua função durável no CloudWatch Logs:
aws logs tail /aws/lambda/myDurableFunction --follow
Filtre logs para uma execução específica:
aws logs filter-log-events \ --log-group-name /aws/lambda/myDurableFunction \ --filter-pattern "exec-abc123"
Limpar os recursos
Exclua sua função durável e os recursos associados:
# 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
Próximas etapas
Depois de implantar sua função durável com a AWS CLI:
Monitore as execuções usando os comandos
list-durable-executionseget-durable-executionVisualize as operações de ponto de verificação em eventos de dados do AWS CloudTrail
Configure os alarmes do CloudWatch para falhas de execução ou execuções de longa duração
Automatize as implantações usando scripts de shell ou pipelines de CI/CD
Para obter mais informações sobre os comandos da AWS CLI para o Lambda, consulte a Referência de comandos da AWS CLI.