Use gateways para rotear solicitações de entrada para vários pontos de extremidade¶
Se você quiser expor vários pontos de extremidade de serviço por trás de um único nome de host, poderá criar um gateway. Um gateway tem um nome de host semelhante a um ponto de extremidade de serviço público. Para obter mais informações sobre pontos de extremidade de serviço públicos, consulte Configurar entrada de serviço.
Os gateways encaminham solicitações de entrada, incluindo solicitações de inferência, de fora do Snowflake para um ou mais pontos de extremidade de serviço. Com os gateways, você pode fazer o seguinte:
Divisão de tráfego entre serviços: você pode permitir que vários serviços compartilhem o mesmo nome de host. O roteamento é feito com base na porcentagem dada para cada serviço. Isso é útil nos seguintes cenários:
Cenário de teste A/B: você pode optar por atualizar um serviço e implantá-lo, mantendo o serviço original em execução. Para testes, você pode optar por rotear uma determinada porcentagem de solicitações de entrada recebidas para o serviço atualizado para testes.
Cenário de alta disponibilidade: você tem um serviço de alta disponibilidade implantado, digamos, em dois pools de computação, em que cada um é criado em um grupo de posicionamento diferente. Você pode optar por usar o gateway para dividir as solicitações de entrada recebidas.
URL estável: cada gateway tem um nome de host alocado na criação. O nome do host não muda durante a vida útil do objeto de gateway. Você pode alterar o objeto gateway para rotear para pontos de extremidade diferentes ou ter configurações de porcentagem diferentes. As alterações entram em vigor em um minuto.
A lista a seguir mostra as diferenças entre um ponto de extremidade de serviço e um gateway:
Segurança do navegador: o ponto de extremidade de serviço oferece suporte à configuração CORS (corsSettings) e aos cabeçalhos do provedor de serviços em nuvem (cloud service provider, CSP) para acesso baseado em navegador por meio de integrações de acesso externo. Um gateway atualmente não é compatível com os cabeçalhos CORS ou CSP.
Direitos do autor da chamada: o ponto de extremidade de serviço é compatível com os direitos do autor da chamada. Um gateway atualmente não é compatível com os direitos do autor da chamada.
Controle de acesso baseado em funções (role-based access control, RBAC): ao usar um ponto de extremidade de serviço, o acesso é gerenciado por meio de funções de serviço. Quando você usa um gateway, o acesso é gerenciado com a concessão do privilégio USAGE no objeto do gateway. Os usuários que acessam um gateway não precisam de funções de serviço para os pontos de extremidade de serviço subjacentes.
O roteamento do gateway respeita a porcentagem relativa dos pontos de extremidade íntegros especificados. Para mais informações sobre o comportamento de failover de um gateway, consulte Comportamento de failover do gateway.
Depois de revisar as seções a seguir, você poderá criar e alterar um gateway. Para informações sobre como criar uma sessão, consulte CREATE GATEWAY. Para mais informações sobre como alterar um gateway, consulte ALTER GATEWAY.
Requisitos de controle de acesso¶
A função de proprietário do gateway precisa ter os seguintes privilégios:
Privilégio |
Objeto |
Notas |
|---|---|---|
CREATE GATEWAY |
Esquema |
Necessário para criar um gateway. |
BIND SERVICE ENDPOINT |
Conta |
Necessário para vincular pontos de extremidade de serviço ao gateway. |
USAGE |
Banco de dados |
Necessário para acessar o banco de dados que contém o gateway. |
USAGE |
Esquema |
Necessário para acessar o esquema que contém o gateway. |
USAGE |
Pontos de extremidade de destino |
Necessário para rotear o tráfego para os pontos de extremidade de destino. |
MODIFY ou OWNERSHIP |
Gateway |
Necessário para alterar a configuração do gateway. |
USAGE, MODIFY ou OWNERSHIP |
Gateway |
Necessário para visualizar a especificação do gateway. |
Nota
Ao listar os gateways, o Snowflake mostra apenas os gateways com uma função com os privilégios USAGE, MODIFY ou OWNERSHIP. A função usada também deve ter os privilégios USAGE para o banco de dados e o esquema que contém o gateway.
Para operações de gateway CREATE, ALTER e DROP, consulte CREATE GATEWAY, ALTER GATEWAY e DROP GATEWAY.
Configurações¶
Por padrão, você recebe no máximo 5 pontos de extremidade por gateway. Para pontos de extremidade adicionais, entre em contato com o suporte para dividir o tráfego em mais pontos de extremidade.
Comportamento de failover do gateway¶
O failover do gateway é o processo em que um gateway redireciona automaticamente o tráfego de um ponto de extremidade (ponto de extremidade A) para outros pontos de extremidade quando o ponto de extremidade A fica indisponível ou inoperante.
Nota
O Snowflake não faz failover em um ponto de extremidade com divisão de tráfego de 0%. O ponto de extremidade deve ter pelo menos 1% de divisão de tráfego.
A porcentagem relativa dos pontos de extremidade disponíveis é respeitada.
O failover de um ponto de extremidade (ponto de extremidade A) para outros pontos de extremidade com pelo menos 1% de divisão de tráfego acontece se alguma das seguintes condições for verdadeira:
O serviço do ponto de extremidade A está suspenso e
auto_resumeestá definido como falso.O pool de computação do ponto de extremidade A está suspenso.
O serviço do ponto de extremidade A falha na análise de prontidão. Isso é atualizado uma vez a cada 40 segundos (taxa de atualização do cache), no máximo. No momento da atualização, o tráfego é imediatamente ajustado sem período de aceleração.
O serviço do ponto de extremidade A é descartado.
A função de proprietário do gateway perde o privilégio (USAGE ou OWNERSHIP) no ponto de extremidade A.