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, SECURITYADMIN ou ORGADMIN, 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/trabalho para evitar que muitos serviços/trabalhos 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/trabalho garantiria que apenas um serviço ou 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.
Invocar uma função de serviço retorna um erro «serviço não encontrado», mas o comando SHOW SERVICES mostra que o serviço existe.
Verifique se o serviço associado à função de serviço foi descartado (DROP SERVICE) e recriado (CREATE SERVICE). Nesse caso, será necessário recriar a função de serviço para apontá-la para o novo serviço.