Gestion des services¶
Snowpark Container Services vous permet de déployer, de gérer et d’adapter facilement des applications conteneurisées. Après avoir chargé votre image d’application dans un référentiel de votre compte, vous pouvez exécuter vos conteneurs d’application en tant que service ou tâche. Cette rubrique explique comment utiliser des services.
Un service est de longue durée, comme un service Web, et ne se termine pas de lui-même. Snowflake gère les services en cours d’exécution. Par exemple, si un conteneur de service s’arrête, pour quelque raison que ce soit, Snowflake redémarre ce conteneur afin que le service fonctionne sans interruption. Si votre service a besoin de plus de ressources, par exemple plus de puissance de calcul, Snowflake fournit des nœuds supplémentaires dans le pool de calcul.
Pour plus d’informations sur l’utilisation des services de conteneurs, consultez Snowpark Container Services : utilisation des tâches.
Cette rubrique explique comment effectuer les tâches suivantes avec les services :
Créer et déployer un service à partir d’une définition de projet
Définir et annuler les propriétés ou les paramètres d’un service
Pour les opérations courantes, telles que l’affichage sous forme de liste ou la suppression, Snowflake CLI utilise les commandes snow object
décrites dans Gestion des objets Snowflake.
Créer un service Snowpark Container Services¶
Un service de conteneurs Snowpark nécessite les éléments suivants :
Un pool de calcul : Snowflake exécute votre service dans le pool de calcul spécifié.
Un fichier de spécification de service : cette spécification donne à Snowflake les informations nécessaires pour configurer et exécuter votre service.
Pour créer un service, entrez une commande snow spcs service create similaire à la suivante :
snow spcs service create "job_1" --compute-pool "pool_1" --spec-path "/some-dir/spec_file.yaml"
Pour plus d’informations, voir Gestion des objets Snowflake.
Créer et déployer un service à partir d’une définition de projet¶
Vous pouvez créer un service à partir d’un fichier de définition de projet snowflake.yml
, puis en exécutant la commande snow spcs service deploy
.
Vous trouverez ci-dessous un exemple de fichier de définition de projet snowflake.yml
:
definition_version: 2
entities:
my_service:
type: service
identifier: my_service
stage: my_stage
compute_pool: my_compute_pool
spec_file: spec.yml
min_instances: 1
max_instances: 2
query_warehouse: my_warehouse
auto_resume: true
external_access_integrations:
- my_external_access
secrets:
cred: my_cred_name
artifacts:
- spec.yml
comment: "My service"
tags:
- name: test_tag
value: test_value
La table suivante décrit les propriétés d’une définition de projet de pool de calcul.
Propriété |
Définition |
---|---|
type required, string |
Doit être |
stage required, string |
Zone de préparation où se trouve le fichier de spécification de service. |
compute_pool required, string |
Pool de calcul où le service s’exécute. |
spec_file required, string |
Chemin d’accès au fichier de spécification de service sur la zone de préparation. |
identifier optional, string |
Identificateur Snowflake de l’entité. La valeur peut avoir les formes suivantes :
|
min_instances optional, string |
Nombre minimum d’instances de service à exécuter. Par défaut : |
max_instances optional, string |
Nombre maximum d’instances de service à exécuter. |
query_warehouse optional, string |
Entrepôt à utiliser si un conteneur de service se connecte à Snowflake pour exécuter une requête, sans spécifier explicitement un entrepôt à utiliser. |
auto_resume optional, string |
Détermine s’il faut reprendre automatiquement lorsqu’une fonction de service ou une entrée est appelée. Par défaut : |
external_access_integrations optional, string sequence |
Noms des intégrations d’accès externe nécessaires pour que cette entité puisse accéder aux réseaux externes. |
secrets optional, dictionary |
Noms et valeurs des variables des secrets afin que vous puissiez utiliser les variables pour faire référence aux secrets. |
artifacts optional, string sequence |
Liste des paires de fichiers source et destination à ajouter à la racine du déploiement. Vous pouvez utiliser les propriétés d’artefacts suivantes :
Si Vous pouvez également transmettre une chaîne pour chaque élément au lieu d’un |
commentaire optional, string |
Commentaires à associer au pool de calcul |
tags optional, Tag sequence |
Noms et valeurs des balises pour le pool de calcul. Pour plus d’informations, voir Quota de balise pour les objets |
Pour créer et déployer un service, procédez comme suit :
Définissez votre répertoire actuel pour le répertoire contenant le fichier de définition du projet.
Exécutez une commande
snow spcs service deploy
similaire à la suivante :snow spcs service deploy
+---------------------------------------------------------------------+ | key | value | |--------+------------------------------------------------------------| | status | Service MY_SERVICE successfully created. | +---------------------------------------------------------------------+
Suspendre et reprendre un service¶
Pour suspendre un service nommé, entrez une commande snow spcs service suspend similaire à la suivante :
snow spcs service suspend echo_service
+-------------------------------------------+
| key | value |
|--------+----------------------------------|
| status | Statement executed successfully. |
+-------------------------------------------+
Pour reprendre un service suspendu, entrez une commande snow spcs service resume similaire à la suivante :
snow spcs service resume echo_service
+-------------------------------------------+
| key | value |
|--------+----------------------------------|
| status | Statement executed successfully. |
+-------------------------------------------+
Obtenir des informations sur le statut d’un service¶
Note
Le rôle actuel doit avoir le privilège MONITOR sur le service pour obtenir son statut.
Lister des services¶
La commande snow spcs service list permet d’obtenir un aperçu de tous les services, y compris leur environnement d’exécution, tel que PENDING ou RUNNING et leur statut de mise à niveau. Pour obtenir le statut d’un service nommé, entrez une commande similaire à la suivante :
snow spcs service list
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| | | | | | | | | | | | | extern | | | | | | | | | | | |
| | | | | | | | | | | | | al_acc | | | | | | | | | | managin | managi |
| | | databa | | | | | curren | target | min_in | max_in | | ess_in | | | | | owner_r | query_ | | | | g_objec | ng_obj |
| | | se_nam | schema | | comput | dns_na | t_inst | _insta | stance | stance | auto_re | tegrat | created | update | resumed | commen | ole_typ | wareho | | spec_di | is_upg | t_domai | ect_na |
| name | status | e | _name | owner | e_pool | me | ances | nces | s | s | sume | ions | _on | d_on | _on | t | e | use | is_job | gest | rading | n | me |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------+--------+---------+--------+---------+--------+---------+--------+--------+---------+--------+---------+--------|
| ECHO_S | RUNNIN | TEST00 | TEST_S | SYSADM | TUTORI | echo-s | 1 | 1 | 1 | 1 | true | None | 2024-10 | 2024-1 | None | This | ROLE | COMPUT | false | 52e62d1 | false | None | None |
| ERVICE | G | _DB | CHEMA | IN | AL_COM | ervice | | | | | | | -16 | 0-16 | | is a | | E_WH | | f19c720 | | | |
| | | | | | PUTE_P | .imhd. | | | | | | | 15:09:3 | 15:09: | | test | | | | 6b5f4ef | | | |
| | | | | | OOL | svc.sp | | | | | | | 0.49300 | 31.905 | | servic | | | | c069557 | | | |
| | | | | | | cs.int | | | | | | | 0-07:00 | 000-07 | | e | | | | 8b6c2b3 | | | |
| | | | | | | ernal | | | | | | | | :00 | | | | | | 806ad76 | | | |
| | | | | | | | | | | | | | | | | | | | | 67d78cc | | | |
| | | | | | | | | | | | | | | | | | | | | ce8b6ed | | | |
| | | | | | | | | | | | | | | | | | | | | 6501a8a | | | |
| | | | | | | | | | | | | | | | | | | | | 3 | | | |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Obtenir le statut d’un service nommé¶
Pour obtenir le statut d’un service individuel, entrez une commande snow spcs service describe similaire à la suivante :
snow spcs service describe echo_service
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| | | | | | | | | | | | | extern | | | | | | | | | | | |
| | | | | | | | | | | | | al_acc | | | | | | | | | | managin | managi |
| | | databa | | | | | curren | target | min_in | max_in | | ess_in | | | | | owner_r | query_ | | | | g_objec | ng_obj |
| | | se_nam | schema | | comput | dns_na | t_inst | _insta | stance | stance | auto_re | tegrat | created | update | resumed | commen | ole_typ | wareho | | spec_di | is_upg | t_domai | ect_na |
| name | status | e | _name | owner | e_pool | me | ances | nces | s | s | sume | ions | _on | d_on | _on | t | e | use | is_job | gest | rading | n | me |
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------+--------+---------+--------+---------+--------+---------+--------+--------+---------+--------+---------+--------|
| ECHO_S | RUNNIN | TEST00 | TEST_S | SYSADM | TUTORI | echo-s | 1 | 1 | 1 | 1 | true | None | 2024-10 | 2024-1 | None | This | ROLE | COMPUT | false | 52e62d1 | false | None | None |
| ERVICE | G | _DB | CHEMA | IN | AL_COM | ervice | | | | | | | -16 | 0-16 | | is a | | E_WH | | f19c720 | | | |
| | | | | | PUTE_P | .imhd. | | | | | | | 15:09:3 | 15:09: | | test | | | | 6b5f4ef | | | |
| | | | | | OOL | svc.sp | | | | | | | 0.49300 | 31.905 | | servic | | | | c069557 | | | |
| | | | | | | cs.int | | | | | | | 0-07:00 | 000-07 | | e | | | | 8b6c2b3 | | | |
| | | | | | | ernal | | | | | | | | :00 | | | | | | 806ad76 | | | |
| | | | | | | | | | | | | | | | | | | | | 67d78cc | | | |
| | | | | | | | | | | | | | | | | | | | | ce8b6ed | | | |
| | | | | | | | | | | | | | | | | | | | | 6501a8a | | | |
| | | | | | | | | | | | | | | | | | | | | 3 | | | |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Lister les instances et les conteneurs¶
Vous pouvez lister les instances et les conteneurs du service avec les commandes codenowrap:snow spcs service list-instances
et snow spcs service list-containers
, respectivement.
Pour obtenir la liste des instances du service echo_service
, entrez la commande suivante snow spcs service list-instances :
snow spcs service list-instances echo_service
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| database_name | schema_name | service_name | instance_id | status | spec_digest | creation_time | start_time |
|---------------+-------------+--------------+-------------+--------+------------------------------------------------------------------+----------------------+----------------------|
| TEST00_DB | TEST_SCHEMA | ECHO_SERVICE | 0 | READY | 336c065739dd2b96e770f01804affdc7810e6df68a23b23052d851627abfbdf9 | 2024-10-10T06:06:30Z | 2024-10-10T06:06:30Z |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Pour obtenir la liste des conteneurs du service echo_service
, entrez la commande suivante snow spcs service list-containers :
snow spcs service list-containers echo_service
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| database_name | schema_name | service_name | instance_id | container_name | status | message | image_name | image_digest | restart_count | start_time |
|---------------+-------------+--------------+-------------+----------------+--------+---------+-------------------------------------------+-------------------------------------------+---------------+----------------------|
| TEST00_DB | TEST_SCHEMA | ECHO_SERVICE | 0 | main | READY | Running | org-test-account-00.registry.registry.sno | sha256:06c3d54edc24925abe398eda70d37eb6b8 | 0 | 2024-10-16T22:09:35Z |
| | | | | | | | wflakecomputing.com/test00_db/test_schema | 7b1c4dd6211317592764e1e7d94498 | | |
| | | | | | | | /test00_repo/echo_service:latest | | | |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Répertorier les points de terminaison d’un service¶
Pour dresser la liste des terminaisons d’un service nommé, entrez une commande snow spcs service list-endpoints similaire à la suivante :
snow spcs service list-endpoints echo_service
+--------------+------+----------+-----------------+-----------------------------------------+
| name | port | protocol | ingress_enabled | ingress_url |
|--------------+------+----------+-----------------+-----------------------------------------|
| echoendpoint | 8000 | TCP | true | org-id-acct-id.snowflakecomputing.app |
+--------------+------+----------+-----------------+-----------------------------------------+
Répertorier tous les rôles de service associés à un service¶
Vous pouvez gérer l’accès aux points de terminaison individuels exposés par un service en définissant les rôles et les autorisations de service dans la spécification de service. Pour plus d’informations sur l’utilisation des rôles de service, consultez GRANT SERVICE ROLE.
Pour obtenir la liste des rôles de service créés pour un service, utilisez la commande snow spcs service list-roles, comme indiqué :
snow spcs service list-roles my_service
+------------------------------------------------------------------+
| created_on | name | comment |
|----------------------------------+---------------------+---------|
| 2024-10-09 16:48:52.980000-07:00 | ALL_ENDPOINTS_USAGE | None |
+------------------------------------------------------------------+
Définir et annuler les propriétés ou les paramètres d’un service¶
Note
Le rôle actuel doit avoir le privilège OPERATE sur le service pour définir les propriétés.
Pour définir une propriété ou un paramètre de service, entrez une commande snow spcs service set similaire à la suivante :
snow spcs service set echo_service --min-instances 2 --max-instances 4
+-------------------------------------------+
| key | value |
|--------+----------------------------------|
| status | Statement executed successfully. |
+-------------------------------------------+
Pour rétablir la valeur par défaut d’une propriété ou d’un paramètre de service, entrez une commande similaire à la suivante :
snow spcs compute-pool unset tutorial_compute_pool --auto-resume
+-------------------------------------------+
| key | value |
|--------+----------------------------------|
| status | Statement executed successfully. |
+-------------------------------------------+
Afficher les journaux d’un service nommé¶
Note
Le rôle actuel doit avoir le privilège MONITOR sur le service pour afficher les journaux.
Pour afficher les connexions locales d’un service nommé, entrez une commande snow spcs service logs similaire à la suivante :
snow spcs service logs "service_1" --container-name "container_1" --instance-id "0"
Mettre à niveau un service nommé¶
Note
Le rôle actuel doit avoir le privilège OPERATE sur le service pour le mettre à niveau.
Pour mettre à niveau un service nommé, entrez une commande snow spcs service upgrade similaire à la suivante :
snow spcs service upgrade echo_service --spec-path spec.yml
+-------------------------------------------+
| key | value |
|--------+----------------------------------|
| status | Statement executed successfully. |
+-------------------------------------------+