Gerenciamento de serviços¶
O Snowpark Container Services permite implantar, gerenciar e dimensionar facilmente aplicativos em contêineres. Depois de fazer upload da imagem do seu aplicativo para um repositório em sua conta, você executará os contêineres do seu aplicativo como um serviço ou um trabalho. Este tópico explica como trabalhar com serviços.
Um serviço é de longa duração, como um serviço web, e não termina sozinho. O Snowflake gerencia serviços em execução. Por exemplo, se um contêiner de serviço sair, por qualquer motivo, o Snowflake reinicia esse contêiner para que o serviço seja executado ininterruptamente. Se seu serviço precisar de mais recursos, como mais poder de computação, o Snowflake provisionará nós adicionais no pool de computação.
Para obter mais informações sobre como trabalhar com serviços de contêiner, consulte Snowpark Container Services: como trabalhar com serviços.
Este tópico mostra como executar as seguintes tarefas com serviços:
Para operações comuns, como listar ou descartar, o Snowflake CLI usa comandos snow object
conforme descrito em Gerenciamento de objetos Snowflake.
Como criar um serviço Snowpark Container Services¶
Um serviço de contêiner Snowpark exige o seguinte:
Um pool de computação: o Snowflake executa seu serviço no pool de computação especificado.
Um arquivo de especificação de serviço: esta especificação fornece ao Snowflake as informações necessárias para configurar e executar seu serviço.
Para criar um serviço, digite um comando semelhante ao seguinte:
snow spcs service create "job_1" --compute-pool "pool_1" --spec-path "/some-dir/spec_file.yaml"
Para obter mais informações, consulte Gerenciamento de objetos Snowflake.
Como suspender e retomar um serviço¶
Para suspender um serviço nomeado, digite um comando semelhante ao seguinte:
snow spcs service suspend echo_service
+-------------------------------------------+
| key | value |
|--------+----------------------------------|
| status | Statement executed successfully. |
+-------------------------------------------+
Para retomar um serviço suspenso, digite um comando semelhante ao seguinte:
snow spcs service resume echo_service
+-------------------------------------------+
| key | value |
|--------+----------------------------------|
| status | Statement executed successfully. |
+-------------------------------------------+
Como obter informações de status sobre um serviço¶
Nota
A função atual deve ter o privilégio MONITOR no serviço para obter seu status.
Como listar todos os serviços¶
O comando snow spcs service list
retorna uma visão geral de todos os serviços, incluindo o estado de tempo de execução dos serviços, como PENDING ou RUNNING, e o status de atualização. Para obter o status de todos os serviços, digite um comando semelhante ao seguinte:
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 | | | |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Como obter o status de um serviço nomeado¶
Para obter o status de um serviço individual, insira um comando snow spcs service describe
semelhante ao comando:
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 | | | |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Como listar instâncias e contêineres¶
É possível listar instâncias e contêineres do serviço com os comandos snow spcs service list-instances
e snow spcs service list-containers
, respectivamente.
Para obter a lista de instâncias no serviço echo_service
, digite o seguinte comando:
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 |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Para obter a lista de contêineres no serviço echo_service
, digite o seguinte comando:
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 | | | |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Como listar os pontos de extremidade em um serviço¶
Para listar os pontos de extremidade de um serviço nomeado, insira um comando semelhante ao seguinte:
snow spcs service list-endpoints echo_service
+--------------+------+----------+-----------------+-----------------------------------------+
| name | port | protocol | ingress_enabled | ingress_url |
|--------------+------+----------+-----------------+-----------------------------------------|
| echoendpoint | 8000 | TCP | true | org-id-acct-id.snowflakecomputing.app |
+--------------+------+----------+-----------------+-----------------------------------------+
Como listar as funções de serviço associadas a um serviço¶
É possível gerenciar o acesso aos pontos de extremidade individuais expostos por um serviço definindo funções e permissões de serviço na especificação do serviço. Para obter mais informações sobre como usar funções de serviço, consulte GRANT SERVICE ROLE.
Para obter uma lista de funções de serviço criadas para um serviço, use o comando snow spcs service list-roles
, conforme mostrado:
snow spcs service list-roles my_service
+------------------------------------------------------------------+
| created_on | name | comment |
|----------------------------------+---------------------+---------|
| 2024-10-09 16:48:52.980000-07:00 | ALL_ENDPOINTS_USAGE | None |
+------------------------------------------------------------------+
Como definir e desmarcar as propriedades ou parâmetros de um serviço¶
Nota
A função atual deve ter o privilégio OPERATE no serviço para definir propriedades.
Para definir uma propriedade ou parâmetro de serviço, insira um comando semelhante ao seguinte:
snow spcs service set echo_service --min-instances 2 --max-instances 4
+-------------------------------------------+
| key | value |
|--------+----------------------------------|
| status | Statement executed successfully. |
+-------------------------------------------+
Para redefinir uma propriedade ou parâmetro de serviço para seu valor padrão, insira um comando semelhante ao seguinte:
snow spcs compute-pool unset tutorial_compute_pool --auto-resume
+-------------------------------------------+
| key | value |
|--------+----------------------------------|
| status | Statement executed successfully. |
+-------------------------------------------+
Como exibir logs para um serviço nomeado¶
Nota
A função atual deve ter o privilégio MONITOR no serviço para exibir logs.
Para exibir logs locais de um serviço nomeado, insira um comando semelhante ao seguinte:
snow spcs service logs "service_1" --container-name "container_1" --instance-id "0"
Como atualizar um serviço nomeado¶
Nota
A função atual deve ter o privilégio OPERATE no serviço para atualizá-lo.
Para atualizar um serviço nomeado, insira um comando semelhante ao seguinte:
snow spcs service upgrade echo_service --spec-path spec.yml
+-------------------------------------------+
| key | value |
|--------+----------------------------------|
| status | Statement executed successfully. |
+-------------------------------------------+