Implemente e invoque funções duráveis do Lambda com a AWS CLI - AWS Lambda

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
  1. 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" } ] }
  2. Crie a função:

    aws iam create-role \ --role-name durable-function-role \ --assume-role-policy-document file://trust-policy.json
  3. 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
  4. 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" } ] }
  5. 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
  1. Empacote seu código de função com as dependências em um arquivo .zip:

    zip -r function.zip index.mjs node_modules/
  2. 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
  1. Atualize o código da função:

    aws lambda update-function-code \ --function-name myDurableFunction \ --zip-file fileb://function.zip
  2. Aguarde até que a atualização seja concluída:

    aws lambda wait function-updated \ --function-name myDurableFunction
  3. Publique uma nova versão:

    aws lambda publish-version \ --function-name myDurableFunction \ --description "Updated order processing logic"
  4. 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-executions e get-durable-execution

  • Visualize 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.