Ajouter un pool de calcul à une application avec des conteneurs¶
Cette rubrique décrit comment utiliser les pools de calcul dans un Snowflake Native Apps with Snowpark Container Services.
À propos des pools de calcul dans les applications avec conteneurs¶
Un pool de calcul est une collection d’un ou plusieurs nœuds de machines virtuelles (VM) sur lesquels Snowflake exécute vos Snowpark Container Services. Une appli avec des conteneurs utilise un pool de calcul dans le compte du consommateur pour gérer les images de conteneurs requises par l’appli.
Une appli peut créer plusieurs pools de calcul et chaque pool de calcul est exclusif à l’application. Les pools de calcul utilisés par l’appli ne peuvent pas être utilisés à d’autres fins.
Les conteneurs d’une appli peuvent accéder directement les uns aux autres, même s’ils se trouvent dans des pools de calcul différents.
Cependant, l’utilisation de différents pools de calcul permet aux fournisseurs de séparer les types de services. Par exemple, un fournisseur peut séparer ses services frontaux des services dorsaux.
Les pools de calcul sont des objets de niveau compte, ce qui signifie que le nom de chaque pool de calcul doit être unique au sein du compte du consommateur.
Créer un pool de calcul pour une appli¶
Il y a deux façons de créer un pool de calcul pour une appli avec des conteneurs :
L’appli crée les pools de calcul nécessaires lors de l’installation. Pour ce faire, le consommateur doit accorder à l’application le privilège CREATE COMPUTE POOL sur le pool de calcul. Un fournisseur peut configurer l’appli pour qu’elle demande ces privilèges à l’aide de Snowsight.
Pour plus d’informations, voir Configurez une application pour qu’elle demande le privilège CREATE COMPUTE POOL.
Le consommateur crée manuellement les pools de calcul nécessaires à l’application. Le consommateur doit exécuter le programme CREATE COMPUTE POOL pour créer le pool de calcul, puis accorder manuellement le privilège CREATE COMPUTE POOL sur le pool de calcul à l’application.
Configurez une application pour qu’elle demande le privilège CREATE COMPUTE POOL¶
Les fournisseurs peuvent configurer une application pour qu’elle demande le privilège CREATE COMPUTE POOL. Ils peuvent également créer le pool de calcul à partir du script de configuration lors de l’installation ou de la mise à niveau de l’application.
Note
Une appli peut créer un maximum de cinq pools de calcul dans un compte de consommateur. Contactez le support Snowflake si votre application a besoin de créer des pools de calcul supplémentaires.
Demander le privilège CREATE COMPUTE POOL¶
Une application peut demander les privilèges CREATE COMPUTE POOL à un consommateur. Ce privilège permet à l’appli de créer un pool de calcul dans le compte du consommateur. Voir Demander des privilèges globaux aux consommateurs pour des informations générales sur la demande de privilèges globaux au consommateur.
Pour demander le privilège CREATE COMPUTE POOL à un consommateur, ajoutez le privilège CREATE COMPUTE POOL au fichier manifest.yml
, comme indiqué dans l’exemple suivant :
...
privileges:
- CREATE COMPUTE POOL
description: "Enable application to create one to five compute pools"
...
Voir Créer le fichier manifeste pour une application avec des conteneurs pour plus d’informations sur la création du fichier manifest.yml
pour une application avec des conteneurs.
Note
Le comportement de la demande du privilège CREATE COMPUTE POOL au sein d’une application conteneurisée est différent de celui des autres demandes de privilèges. Lorsque vous ajoutez ce privilège au fichier manifest.yml
, Snowsight affiche une interface qui permet à un consommateur d’accorder les privilèges requis.
Ajouter la commande CREATE COMPUTE POOL au script d’installation¶
Pour créer un pool de calcul dans le compte du consommateur, ajoutez la commande CREATE COMPUTE POOL au script d’installation de l’application.
L’exemple suivant montre comment créer un pool de calcul dans une procédure stockée du script d’installation :
CREATE COMPUTE POOL IF NOT EXISTS app_compute_pool
MIN_NODES = 1
MAX_NODES = 1
INSTANCE_FAMILY = standard_1
AUTO_RESUME = true;
Note
Lors de la création d’un pool de calcul dans l’appli, les fournisseurs doivent vérifier que le fournisseur a accordé le privilège CREATE COMPUTE POOL avant de créer le pool de calcul.
Les pools de calcul créés par une application appartiennent exclusivement à cette application. Ils ne peuvent pas être utilisés par d’autres applications ou par le consommateur directement.
En général, les utilisateurs du compte consommateur ne peuvent voir les pools de calcul créés par l’appli que dans les situations suivantes :
L’utilisateur a reçu le privilège MANAGE GRANTS.
L’appli accorde l’accès au pool de calcul à l’aide de rôles d’application.
Cependant, les utilisateurs ayant le rôle ACCOUNTADMIN peuvent suspendre, arrêter et reprendre un pool de calcul même s’il appartient à une appli.
Préfixer le pool de calcul dans le script d’installation¶
Les pools de calcul étant des objets de niveau compte, les noms de pools de calcul doivent être uniques au sein du compte du consommateur. L’exemple suivant montre comment utiliser le nom de l’application comme préfixe du nom du pool de calcul :
LET POOL_NAME := (select current_database()) || '_app_pool';
CREATE COMPUTE POOL IF NOT EXISTS identifier(:pool_name)
MIN_NODES = 1
MAX_NODES = 1
INSTANCE_FAMILY = STANDARD_2;
Meilleures pratiques pour l’utilisation de pools de calcul dans une application avec des conteneurs¶
Les fournisseurs doivent tenir compte des éléments suivants lorsqu’ils créent des pools de calcul dans le compte du consommateur :
Les pools de calcul ont une incidence sur les coûts. Il est important de définir des valeurs pour les propriétés
min_nodes
,max_nodes
, etinstance_family
afin de consommer la quantité correcte de ressources. Les fournisseurs doivent également définir la propriété AUTO_SUSPEND_SECS pour suspendre automatiquement les pools d’ordinateurs lorsqu’ils sont inactifs.Pour plus d’informations, voir CREATE COMPUTE POOL.
Les pools de calcul étant des objets de niveau compte, les noms de pools de calcul doivent être uniques au sein du compte du consommateur. Pensez à utiliser le nom de l’application comme préfixe du nom du pool de calcul.