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 :
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 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.
Suspendre et reprendre un service¶
Pour suspendre un service nommé, entrez une commande similaire à la suivante :
snow spcs service suspend echo_service
+-------------------------------------------+
| key | value |
|--------+----------------------------------|
| status | Statement executed successfully. |
+-------------------------------------------+
Pour reprendre un service suspendu, entrez une commande 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
renvoie un aperçu de tous les services, y compris l’état d’exécution des services, tels que PENDING ou RUNNING, et le 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 dans le service echo_service
, entrez la commande suivante :
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 dans le service echo_service
, entrez la commande suivante :
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 points de terminaison d’un service nommé, entrez une commande 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 une 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 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 journaux locaux d’un service nommé, entrez une commande 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 similaire à la suivante :
snow spcs service upgrade echo_service --spec-path spec.yml
+-------------------------------------------+
| key | value |
|--------+----------------------------------|
| status | Statement executed successfully. |
+-------------------------------------------+