Como soluciono problemas de falhas na função do Lambda?

8 minuto de leitura
0

Quando tento invocar minha função do AWS Lambda, ela falha e retorna um erro.

Resolução

Para solucionar falhas na função do Lambda, determine o que está causando o erro usando um ou mais dos serviços e recursos da AWS listados neste artigo. Em seguida, siga os links fornecidos para analisar as melhores práticas de solução de problemas para cada problema.

Identifique e solucione quaisquer erros de rede

Se houver problemas com sua configuração de rede Lambda, você verá muitos tipos de erros. A seguir estão alguns dos erros mais comuns relacionados à rede do Lambda:

Se sua função não estiver em uma nuvem privada virtual (VPC) e você tentou acessar recursos usando um nome DNS privado, você verá o seguinte erro:

UnknownHostException
Erro: getaddrinfo ENOTFOUND

Se sua função estiver em uma VPC e depois perder o acesso à Internet ou expirar, você verá o seguinte erro:

**conecte ETIMEDOUT 176.32.98.189:443
O tempo limite da tarefa expirou após 10,00 segundos **

Se a VPC em que sua função atingir seu limite de interface de rede elástica, você verá o seguinte erro:

ENILimitReachedException: O limite da interface de rede elástica foi atingido para a VPC da função.

Se a conexão do Transmission Control Protocol (TCP) for interrompida, você verá o seguinte erro:

Conexão redefinida por par
ECONNRESET
ECONNREFUSED

Para solucionar erros de rede Lambda

1.Confirme se há um caminho de rede válido para o endpoint que sua função está tentando alcançar para sua Amazon Virtual Private Cloud (Amazon VPC). Para mais informações, consulte Configuração de uma função do Lambda para acessar recursos em uma VPC.

2.Confirme se sua função tem acesso à Internet. Para mais informações, consulte Como conceder acesso à Internet para uma função do Lambda conectada a uma Amazon VPC? Também, consulte Como soluciono problemas de tempo limite com uma função do Lambda que está em uma Amazon VPC?

3.Para solucionar problemas relacionados à resolução de DNS, certifique-se de que a VPC esteja configurada para acesso a recursos privados. Se você não estiver usando o DNS fornecido pela AWS, use uma instância do EC2 para garantir que a opção DHCP fornecida pelo cliente resolva o nome do DNS corretamente. Para mais informações, consulte Como funciona o DNS e como soluciono falhas de DNS parciais ou intermitentes?

**Observação:**se você não conseguir determinar por que seu código de função não está chegando a um endpoint público depois de revisar sua configuração da VPC, ative os registros de fluxo da VPC. Os registros de fluxo da VPC permitem que você veja todo o tráfego da rede fluindo de e para uma VPC. Os registros de fluxo da VPC também permitem determinar por que uma solicitação específica foi negada ou não foi roteada. Para mais informações, consulte Solucionar problemas de rede no Lambda.

Identificar e solucione erros de permissão

Se as permissões de segurança do seu pacote de implantação do Lambda estiverem incorretas, você verá um dos seguintes erros:

  • EACCES: permissão negada, abra '/var/task/index.js'
  • não é possível carregar esse arquivo -- função
  • \ [Errno 13] Permissão negada: '/var/task/function.py'

O tempo de execução do Lambda precisa de permissão para ler os arquivos em seu pacote de implantação. Você pode usar o comando chmod para alterar o modo de arquivo. Os comandos de exemplo a seguir tornam todos os arquivos e pastas no diretório atual legíveis por qualquer usuário:

chmod -R o+rX .

Para mais informações, consulte Solucionar problemas de implantação no Lambda.

Se suas identidades do AWS Identity and Access Management (IAM) não tiverem permissão para invocar uma função, você receberá o seguinte erro:

Usuário: arn:aws:iam: :123456789012:user/developer não está autorizado a executar: lambda:invokeFunction no recurso: my-function

Para solucionar erros de permissões do Lambda

Revise suas entradas do arquivo de log do Lambda no AWS CloudTrail. O solicitante que faz chamadas para o Lambda deve ter as permissões do IAM necessárias para invocar sua função. Para conceder as permissões necessárias, atualize suas permissões de função do Lambda.

Para obter mais informações, consulte as informações a seguir:

Identifique e solucione quaisquer erros de código

Se houver problemas com seu código Lambda, você verá muitos tipos de erros. A seguir estão alguns dos erros mais comuns relacionados ao código Lambda:

  • **Não foi possível organizar a resposta: O objeto do tipo AttributeError não é serializável em JSON **
  • Problema: O SDK da AWS incluído no tempo de execução não é a versão mais recente
  • (Node.js) A função retorna antes que o código termine de ser executado
  • Erro de chave

**Para solucionar erros de código Lambda **

  1.    Analise seus registros do Amazon CloudWatch para Lambda.

Você pode usar o CloudWatch para visualizar todos os registros gerados pelo código da sua função e identificar possíveis problemas. Para mais informações, consulte Accessing Amazon CloudWatch logs for AWS Lambda. Para obter detalhes sobre o registro de funções, consulte as seguintes instruções de registro de funções do Lambda para a linguagem de programação que você está usando:

**Observação:**se sua função estiver retornando um rastreamento de pilha, a mensagem de erro no rastreamento de pilha especificará o que está causando o erro.

2.Use o AWS X-Ray para identificar quaisquer gargalos no desempenho do código. Se sua função do Lambda usa recursos, microsserviços, bancos de dados ou APIs web HTTP downstream da AWS, você pode usar a AWS X-Ray para solucionar problemas de desempenho de código. Para mais informações, consulte Usar o AWS Lambda com a AWS X-Ray.

3.Confirme se o pacote de implantação da sua função pode importar todas as dependências necessárias. Siga as instruções dos pacotes de implantação do Lambda para a linguagem de programação que você está usando:

**Observação:**você também pode usar camadas do Lambda para adicionar dependências que estão fora do seu pacote de implantação.

4.(Para código implantado como uma imagem de contêiner) Confirme se você está instalando o cliente da interface de tempo de execução e implantando a imagem corretamente. Siga as instruções da imagem do contêiner para a linguagem de programação que você está usando:

Identificar e solucionar erros de limitação

Se sua função for limitada, você verá o seguinte erro:

Rate exceeded
429 TooManyRequestsException

Para solucionar erros de limitação do Lambda

Analise suas métricas do CloudWatch para o Lambda. Para mais informações, consulte Como trabalhar com métricas da função Lambda.

Principais métricas a serem monitoradas:

  • Execuções simultâneas
  • Execuções simultâneas não reservadas
  • Aceleradores

Observação: se as solicitações para invocar sua função chegarem mais rápido do que a função pode escalar ou exceder seu limite de simultaneidade, as solicitações falharão com um erro de limitação 429. Para mais informações, consulte Escalabilidade de funções do Lambda. Também, Como soluciono problemas de controle de utilização de funções do Lambda com erros de “Taxa excedida” e 429 “TooManyRequestsException”?

Identifique e solucione quaisquer erros das APIs Invoke 500 e 502

Se sua solicitação de invocação falhar, você verá qualquer um dos seguintes 502 ou 500 erros do lado do servidor:

  • InvalidRuntimeException
  • InvalidSecurityGroupIDException
  • InvalidZipFileException
  • KMSAccessDeniedException
  • KMSNotFoundException
  • Você excedeu o limite máximo de ENIs Hyperplane para sua conta
  • SubnetIPAddressLimitReachedException

**Para solucionar os erros das APIs 500 e 502 do Lambda Invoke **

Siga as instruções em Como soluciono erros de código de status HTTP 502 e HTTP 500 (do lado do servidor) do AWS Lambda? para ver uma lista de possíveis erros e suas descrições, consulte Erros na referência da API invoke do Lambda.

Identificar e solucionar erros na imagem do contêiner

Se você estiver usando imagens de contêiner e houver um problema com uma imagem de contêiner, você verá qualquer um dos seguintes erros:

  • "errorType": "Runtime.InvalidEntrypoint"
  • Error: You are using an AWS CloudFormation template, and your container ENTRYPOINT is being overridden with a null or empty value.

Para solucionar erros de imagem do contêiner Lambda

Siga as instruções em Solucionar problemas de imagem de contêiner no Lambda.


Informações relacionadas

Monitoramento e solução de problemas de aplicativos Lambda

Tratamento de erros e novas tentativas automáticas no AWS Lambda

AWS OFICIAL
AWS OFICIALAtualizada há um ano