Solução de problemas do Snowpark Container Services¶
Este tópico discute problemas comuns e como você pode resolvê-los.
Registro de imagens¶
Erro de «solicitação de consentimento inválida» recebido ao acessar um ponto de extremidade de serviço público.
Na implementação atual, o Snowflake autentica o usuário atual usando sua função padrão. Este erro provavelmente ocorre porque o usuário está usando uma das funções privilegiadas, como ACCOUNTADMIN ou SECURITYADMIN como função padrão (consulte Bloqueio de funções específicas para o uso de integração). Use o comando ALTER USER para alterar a função padrão do usuário e tente novamente.
Falha de autenticação
docker login
.Não use um nome de host maiúsculo no comando
docker login
e depois use um nome de host minúsculo no comandodocker push
,docker pull
. Docker CLI armazena credenciais com chaves em letra maiúscula e minúscula. Problema Docker CLI relacionado.Erro
docker push
: nenhum host no URL da solicitação.Ao interagir com o Docker CLI, sempre substitua os sublinhados no nome da sua conta no URL por hífens. Docker CLI retornará um erro se os nomes de host contiverem sublinhados (mesmo que cURL funcione). Por exemplo, o seguinte push do Docker especifica «my_acct» como o nome da conta:
docker push myorg-my_acct.registry.snowflakecomputing.com/tutorial_db/data_schema/tutorial_repository/service_to_service
Docker retorna este erro:
Get "https:/v2/": http: no Host in request URL.
Você também pode usar o comando SHOW IMAGE REPOSITORIES para obter um URL de repositório válido.
Pool de computação¶
Pool de computação suspenso preso no estado STOPPING.
A execução de serviços impedirá a parada do pool de computação. Suspenda todos os serviços ativos restantes no pool de computação usando o comando ALTER COMPUTE POOL:
ALTER COMPUTE POOL <pool_name> STOP ALL
Serviço¶
Um serviço em execução não responde mais às solicitações (de uma função de serviço ou de um ponto de extremidade público). O status do serviço mudou de em execução para pendente.
Isto pode ser uma indicação de falta de recursos nos nós do pool de computação. Se seus contêineres usarem muitos recursos (CPU/memória), você deverá especificar explicitamente solicitações de recursos na especificação de serviço para evitar que muitos serviços (incluindo serviços de trabalho) sejam colocados em um único nó.
Na implementação atual, você só pode especificar solicitações de memória.
Por exemplo, se um nó no pool de computação tiver 64 GB de RAM, solicitar mais de 32 GB para seu serviço (ou serviço de trabalho) garantiria que apenas um serviço ou serviço de trabalho pudesse ser executado em um nó por vez. Para obter mais informações sobre a capacidade de cada tipo de instância, consulte CREATE COMPUTE POOL.
Se você estiver enviando uma solicitação ao ponto de extremidade público para o serviço, não use aspas duplas no cabeçalho de autenticação do HTTP.
Funções de serviço¶
Tempo limite da função de serviço e problemas de execução duplicada.
Se uma única invocação de função de serviço demorar mais de 30 segundos, o Snowflake tentará novamente a função e, após algumas tentativas, a função falhará com um erro de tempo limite. Você poderá obter resultados inesperados se a implementação da função no contêiner não for idempotente. Considere usar a execução assíncrona retornando um código HTTP diferente (202), que permite um tempo limite mais longo. Para obter mais informações, consulte Serviço remoto assíncrono.
Entrada¶
Se a autenticação falhar, isso pode ser devido à política de redes associada ao usuário ou à conta.
Ao acessar o ponto de extremidade público pela Internet, você pode descobrir que a autenticação por nome de usuário/senha funciona, mas SSO resulta em uma página em branco ou no erro: «A integração do clienteOAuth com o ID do cliente fornecido não foi encontrada.» Para obter informações sobre como resolver esse problema, consulte Considerações sobre ingresso e SSO.
Quando um cliente recebe um erro 5XX de um ponto de extremidade de entrada (500/503/504), o cliente deve tentar novamente, com algum backoff. Recomendamos o backoff exponencial limitado.
Uma solicitação de pré-voo CORS retorna o status 404-Endpoint does not exist:
Verifique se o ponto de extremidade existe executando o comando SHOW ENDPOINTS.
Uma solicitação de pré-voo CORS retorna o status 302.
A solicitação CORS não tinha nenhuma forma de autenticação. Devido à incapacidade de distinguir entre solicitações CORS e redirecionamentos/tags de âncora, temos que presumir que se trata de um caso de redirecionamento/tag de âncora e retornar um 302.
Status da resposta 403 “Rejecting a CORS request since cookie was present, and request does not have an auth header” (Rejeitando uma solicitação CORS, pois o cookie estava presente e a solicitação não tem um cabeçalho de autorização).
Isso ocorre quando uma solicitação de origem cruzada não GET não HEAD está tentando usar o cookie como método de autenticação. O cabeçalho Autenticação é necessário para essas solicitações de origem cruzada. Esse erro ocorre quando a solicitação tem cookies presentes e o cabeçalho Autenticação não está presente.
Mensagem de erro “Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at …” (Solicitação de origem cruzada bloqueada: a política de mesma origem não permite a leitura do recurso remoto em…).
O navegador retorna esse erro quando o serviço indica que não é compatível com o acesso de origem cruzada solicitado. Isso geralmente acontece porque o endereço
Origin
fornecido pelo navegador não corresponde a uma das origens especificadas emAccess-Control-Allow-Origin
na especificação do serviço para o ponto de extremidade. Para que eles correspondam, o esquema (HTTP/HTTPS) e o nome do host devem corresponder.