Utiliser des passerelles pour acheminer les demandes entrantes vers plusieurs points de terminaison¶
Si vous souhaitez exposer plusieurs points de terminaison de service derrière un seul nom d’hôte, vous pouvez créer une passerelle. Une passerelle a un nom d’hôte similaire à celui d’un point de terminaison de service public. Pour plus d’informations sur les points de terminaison de service publics, voir Configurer l’entrée du service.
Les passerelles acheminent les demandes d’entrée (y compris les demandes d’inférence) en dehors de Snowflake vers un ou plusieurs points de terminaison de service. Avec les passerelles, vous pouvez faire ce qui suit :
Répartition du trafic entre les services : vous pouvez autoriser plusieurs services à partager le même nom d’hôte. Le routage est effectué en fonction du pourcentage donné pour chaque service. Ceci est utile dans les scénarios suivants :
Scénario de test A/B : vous pouvez choisir de mettre à jour un service et de le déployer tout en maintenant le service d’origine en cours d’exécution. À des fins de test, vous pouvez choisir de rediriger un certain pourcentage des demandes entrantes vers le service mis à jour.
Scénario de haute disponibilité : vous disposez d’un service à haute disponibilité déployé, par exemple, sur deux pools de calcul, chaque pool de calcul étant créé dans un groupe de placement différent. Vous pouvez choisir d’utiliser la passerelle pour répartir les demandes entrantes.
URL stable : chaque passerelle dispose d’un nom d’hôte attribué lors de sa création. Le nom d’hôte ne change pas pendant la durée de vie de l’objet de passerelle. Vous pouvez modifier l’objet de passerelle pour effectuer un routage vers différents points de terminaison ou avoir différentes configurations de pourcentage. Les modifications prennent effet en l’espace d’une minute.
La liste suivante montre les différences entre un point de terminaison de service et une passerelle :
Sécurité du navigateur : le point de terminaison de service prend en charge les en-têtes de configuration CORS (corsSettings) et de fournisseur de services Cloud (CSP) pour l’accès via un navigateur grâce à des intégrations d’accès externe. Une passerelle ne prend actuellement pas en charge les en-têtes CORS ou CSP.
Droits de l’appelant : le point de terminaison de service prend en charge les droits de l’appelant. À l’heure actuelle, une passerelle ne prend pas en charge les droits de l’appelant.
Contrôle d’accès basé sur les rôles (RBAC) : lorsque vous utilisez un point de terminaison de service, l’accès est géré en utilisant les rôles de services. Lorsque vous utilisez une passerelle, l’accès est géré en accordant le privilège USAGE sur l’objet de passerelle. Les utilisateurs accédant à une passerelle n’ont pas besoin de rôles de service pour les points de terminaison de service sous-jacents.
Le routage des passerelles respecte le pourcentage relatif des points de terminaison sains spécifiés. Pour plus d’informations sur le comportement de basculement d’une passerelle, consultez Comportement de basculement des passerelles.
Après avoir examiné les sections suivantes, vous pouvez créer et modifier une passerelle. Pour plus d’informations sur la création d’une passerelle, consultez CREATE GATEWAY. Pour plus d’informations sur la modification d’une passerelle, consultez ALTER GATEWAY.
Exigences en matière de contrôle d’accès¶
Le rôle de propriétaire de la passerelle doit avoir les privilèges suivants :
Privilège |
Objet |
Remarques |
|---|---|---|
CREATE GATEWAY |
Schéma |
Requis pour créer une passerelle. |
BIND SERVICE ENDPOINT |
Compte |
Requis pour lier les points de terminaison de service à la passerelle. |
USAGE |
Base de données |
Requis pour accéder à la base de données contenant la passerelle. |
USAGE |
Schéma |
Requis pour accéder au schéma contenant la passerelle. |
USAGE |
Points de terminaison cibles |
Requis pour acheminer le trafic vers les points de terminaison cibles. |
MODIFY ou OWNERSHIP |
Passerelle |
Requis pour modifier la configuration de la passerelle. |
USAGE, MODIFY ou OWNERSHIP |
Passerelle |
Requis pour afficher la spécification de la passerelle. |
Note
Lors de l’énumération des passerelles, Snowflake n’affiche que les passerelles sur lesquelles le rôle dispose des privilèges USAGE, MODIFY ou OWNERSHIP. Le rôle utilisé doit également disposer des privilèges USAGE sur la base de données et le schéma contenant la passerelle.
Pour les opérations de passerelle CREATE, ALTER et DROP, consultez CREATE GATEWAY, ALTER GATEWAY, et DROP GATEWAY.
Configurations¶
Par défaut, vous obtenez un maximum de 5 points de terminaison par passerelle. Pour des points de terminaison supplémentaires, contactez l’assistance pour diviser le trafic en plus de points de terminaison.
Comportement de basculement des passerelles¶
Le basculement de passerelle est le processus par lequel une passerelle redirige automatiquement le trafic d’un point de terminaison (point de terminaison A) vers d’autres points de terminaison lorsque le point de terminaison A devient indisponible ou non opérationnel.
Note
Snowflake ne bascule pas vers un point de terminaison avec un partage de trafic de 0 %. Le point de terminaison doit avoir au moins 1 % de partage de trafic.
Le pourcentage relatif des points de terminaison disponibles est respecté.
Le basculement d’un point de terminaison (point de terminaison A) vers d’autres points de terminaison avec au moins 1 % de partage de trafic se produit si l’une des conditions suivantes est remplie :
Le service du point de terminaison A est suspendu et
auto_resumeest défini sur false.Le pool de calcul du point de terminaison A est suspendu.
Le service du point de terminaison A échoue au test de disponibilité. Celui-ci est mis à jour une fois toutes les 40 secondes (taux d’actualisation du cache) au maximum. Au moment de la mise à jour, le trafic est immédiatement ajusté, sans période de mise en route.
Le service du point de terminaison A est supprimé.
Le rôle de propriétaire de la passerelle perd le privilège (USAGE ou OWNERSHIP) sur le point de terminaison A.