Solução de problemas de funções externas para AWS¶
Este tópico fornece informações de solução de problemas para funções externas para a AWS.
Neste tópico:
Problemas de tempo de execução independentes da plataforma¶
Os valores de retorno dos tipos de dados não correspondem aos valores de retorno esperados¶
Ao passar argumentos de ou para uma função externa, certifique-se de que os tipos de dados sejam apropriados. Se o valor enviado não se encaixar no tipo de dados recebidos, o valor pode ser truncado ou corrompido de alguma outra forma.
Para obter mais detalhes, consulte Assegurar que os argumentos para a função externa correspondem aos argumentos analisados pelo serviço remoto.
Erro: números de linha fora de ordem¶
- Causas possíveis:
Os números de linha que você retorna dentro de cada lote devem ser inteiros monotônicos crescentes, começando em 0. Os números das linhas de entrada também devem seguir essa regra, e cada linha de saída deve coincidir com a linha de entrada correspondente. Por exemplo, a saída na linha de saída 0 deve corresponder à entrada na linha de entrada 0.
- Possíveis soluções:
Certifique-se de que os números de linha que você retorna sejam os mesmos que os números de linha que você recebeu, e que cada valor de saída utilize o número de linha de entrada correspondente. Se isso não funcionar, os números das linhas de entrada podem não estar corretos ou você não retornou as linhas na ordem correta.
Em seguida, certifique-se de que os números das linhas de saída comecem a partir de 0, tenham um aumento de 1 e estejam em ordem.
Para obter mais informações sobre formatos de entrada e saída de dados, consulte Formatos de dados de entrada e saída de serviços remotos.
Erro: “Error parsing JSON: Invalid response”¶
- Causas possíveis:
A causa mais provável é que o JSON retornado pelo serviço remoto (por exemplo, função AWS Lambda) não está construído corretamente.
- Possíveis soluções:
Certifique-se de que a função externa retorne uma matriz de matrizes, com uma matriz interna retornada para cada linha de entrada recebida. Confira a descrição do formato de saída em Formato dos dados recebidos pelo Snowflake.
Erro: o formato do valor retornado não é JSON¶
- Causas possíveis:
Seu valor de retorno inclui aspas duplas dentro do valor.
- Possíveis soluções:
Embora as cadeias de caracteres JSON sejam delimitadas por aspas duplas, na maioria dos casos, a cadeia em si não deve começar nem terminar com aspas. Se as aspas duplas incorporadas estiverem incorretas, remova-as.
Erro: função recebeu o número errado de linhas¶
- Causas possíveis:
O serviço remoto tentou retornar mais ou menos linhas do que recebeu. Mesmo que a função seja nominalmente escalar, ela pode receber várias linhas no campo
body
do parâmetroevent
e deve retornar exatamente a quantidade de linhas que recebeu.- Possíveis soluções:
Assegure que o serviço remoto retorne uma linha para cada linha que recebe.
Questões específicas de AWS¶
Gateway de API retorna o erro 502 enquanto o ponto de extremidade está usando a integração de proxy do Lambda¶
- Possível causa:
A função Lambda pode ter:
Expirado.
Lançado uma exceção.
Falhado de alguma outra forma.
- Possível solução:
Se os logs da Lambda ou do Gateway de API estão disponíveis para você, examine-os.
Se o código-fonte da função Lambda estiver disponível para você, analise e depure o código na função Lambda. Em alguns casos, você pode conseguir executar uma cópia desse código em um contexto mais simples (fora da AWS) para ajudar na depuração do mesmo.
Verifique se os dados enviados para a função Lambda estão no formato esperado pela função Lambda. Você pode tentar enviar um conjunto de dados menor e mais simples para ver se consegue executar com sucesso.
Verifique se você não está enviando muitos dados de uma só vez.
Em alguns casos, o aumento do tempo limite pode resolver o problema, especialmente se a função Lambda exigir muitos recursos da CPU, ou se a própria função Lambda chamar outros serviços remotos e, portanto, exigir mais tempo.
Não é possível ler o corpo das solicitações no método HTTP POST dentro da função Lambda Amazon AWS¶
- Possível causa:
Você pode não ter permitido a integração de proxy do Lambda.
- Possível solução:
Habilite a integração de proxy do Lambda.
Para obter mais detalhes, consulte as etapas em Criar o ponto de extremidade do API Gateway.
Error assuming AWS_ROLE¶
O texto completo da mensagem é:
SQL execution error: Error assuming AWS_ROLE. Please verify the role and externalId are configured correctly in your AWS policy.
- Possível causa:
Na Política de Relação de Confiança da AWS para a sua função, o AWS ARN está incorreto. Possíveis causas para isso incluem:
Você não o definiu.
Você o definiu, mas usou o ARN da função AWS (incorreto) em vez do usuário ARN, que pode ser visto no comando DESCRIBE INTEGRATION no Snowflake. Certifique-se de usar o valor do campo
API_AWS_IAM_USER_ARN
da planilha em vez do valor do campo “API_AWS_ROLE_ARN”.
Na Política de Relação de Confiança da AWS, a std:ExternalId está incorreta. Possíveis causas para isso incluem:
Você não o definiu.
Você recriou o objeto de integração da API. Recriar o objeto da API muda sua ID externa.
Error parsing JSON response … Error: top-level JSON object must contain “data” JSON array element¶
O texto completo da mensagem é:
Error parsing JSON response for external function ... Error: top-level JSON object must contain "data" JSON array element
- Possível causa:
Você pode não ter especificado a integração de proxy do Lambda para o comando POST em seu recurso do Gateway de API.
- Possível solução:
Especifique a integração de proxy do Lambda para seu recurso do Gateway de API.
Para obter mais detalhes sobre a integração de proxy do Lambda, consulte as etapas em Criar o ponto de extremidade do API Gateway.
Request failed for external function EXT_FUNC with remote service error: 403 ‘{“message”:“Forbidden”}’;¶
- Possível causa:
O serviço de proxy exigia uma chave de API, geralmente para autenticação ou faturamento. A chave de API está ausente ou incorreta.
- Possível solução:
Use o comando ALTER API INTEGRATION para especificar a chave de API correta.
CloudFormation stack creation fails¶
Este erro pode ocorrer se você estiver usando um modelo AWS CloudFormation para criar uma função externa.
- Possível causa:
Você não tem permissões necessárias para criar os recursos especificados no modelo CloudFormation.
- Possível solução:
Verifique a aba Events da pilha para ver os detalhes do erro.
Consulte também a página de solução de problemas das funções externas da AWS para mais dicas de solução de problemas.