Solução de problemas de funções externas para GCP

Este tópico fornece informações de solução de problemas para funções externas para a GCP.

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âmetro event 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 GCP

Erro: a solicitação falha com ‘{“message”:”Audiences in Jwt are not allowed”,“code”:403}’

Causas possíveis

O valor no campo google_audience da integração de API não é permitido.

Possíveis soluções
  • Verifique se o valor google_audience da integração de API corresponde ao nome do serviço gerenciado da sua API, que deve ser registrado no campo Managed Service Identifier da sua planilha de rastreamento.

  • Se você adicionou um campo x-google-audiences à seção securityDefinitions do seu arquivo de configuração de API, certifique-se de que o valor em x-google-audiences corresponde ao valor no campo google_audience da integração de API.

Para obter mais informações sobre autenticação com o Google, consulte a documentação de autenticação da conta de serviço do Google

Erro: a solicitação falha com ‘{“message”:“Jwt is missing”,“code”:401}’

Causas possíveis
  • O valor do campo x-google-issuer no campo securityDefinitions do arquivo de configuração pode não corresponder ao valor API_GCP_SERVICE_ACCOUNT para a integração de API, conforme registrado na sua planilha de rastreamento.

  • O valor em x-google-issuer pode conter espaço extra em branco.

Possíveis soluções
  • Atualize x-google-issuer para corresponder a API_GCP_SERVICE_ACCOUNT.

  • Remova o espaço em branco desnecessário.

Erro: a solicitação falha com ‘403 Forbidden’

Causas possíveis

A conta de serviço que usa a configuração não tem as permissões apropriadas no back-end.

Possíveis soluções

Atualize as permissões da conta de serviço.