Verwalten von Diensten¶
Snowpark Container Services ermöglicht Ihnen die einfache Bereitstellung, Verwaltung und Skalierung von containerisierten Anwendungen. Nachdem Sie Ihr Anwendungsimage in ein Repository in Ihrem Konto hochgeladen haben, können Sie Ihre Anwendungscontainer als Dienst oder Job ausführen. Unter diesem Thema wird die Verwendung von Diensten erläutert.
Ein Dienst hat eine lange Ausführungszeit und endet, wie ein Webservice, nicht von selbst. Snowflake verwaltet in Ausführung befindliche Dienste. Wenn z. B. ein Dienstcontainer aus irgendeinem Grund vorhanden ist, startet Snowflake diesen Container neu, damit der Dienst ohne Unterbrechung ausgeführt wird. Wenn Ihr Dienst mehr Ressourcen benötigt, z. B. mehr Rechenleistung, stellt Snowflake zusätzliche Knoten im Computepool bereit.
Weitere Informationen zur Verwendung von Containerdiensten finden Sie unter Snowpark Container Services: Verwenden von Diensten.
Unter diesem Thema erfahren Sie, wie Sie die folgenden Aufgaben mit Diensten durchführen können:
Für gängige Operationen, wie z. B. Auflisten oder Löschen, verwendet Snowflake CLI die Befehle snow object
wie unter Verwalten von Snowflake-Objekten beschrieben.
Snowpark Container Services-Dienst erstellen¶
Für einen Snowpark-Containerdienst benötigen Sie Folgendes:
Ein Computepool: Snowflake führt Ihren Dienst in dem angegebenen Computepool aus.
Eine Dienstspezifikationsdatei: Diese Spezifikation liefert Snowflake die Informationen, die zur Konfiguration und Ausführung Ihres Dienstes erforderlich sind.
Um einen Dienst zu erstellen, geben Sie einen Befehl ähnlich dem folgenden ein:
snow spcs service create "job_1" --compute-pool "pool_1" --spec-path "/some-dir/spec_file.yaml"
Weitere Informationen dazu finden Sie unter Verwalten von Snowflake-Objekten.
Einen Dienst anhalten und fortsetzen¶
Um einen benannten Dienst anzuhalten, geben Sie einen Befehl ähnlich dem folgenden ein:
snow spcs service suspend echo_service
+-------------------------------------------+
| key | value |
|--------+----------------------------------|
| status | Statement executed successfully. |
+-------------------------------------------+
Um einen unterbrochenen Dienst fortzusetzen, geben Sie einen Befehl ähnlich dem folgenden ein:
snow spcs service resume echo_service
+-------------------------------------------+
| key | value |
|--------+----------------------------------|
| status | Statement executed successfully. |
+-------------------------------------------+
Statusinformationen über einen Dienst abrufen¶
Bemerkung
Die aktuelle Rolle muss über die Berechtigung MONITOR für den Dienst verfügen, um dessen Status abrufen zu können.
Alle Dienste auflisten¶
Der snow spcs service list
-Befehl liefert einen Überblick über alle Services, einschließlich des Laufzeitstatus der Dienste, wie PENDING oder RUNNING, und des Status der Aktualisierung. Um den Status aller Dienste abzurufen, geben Sie einen Befehl ähnlich dem Folgenden ein:
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 | | | |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Den Status eines benannten Dienstes abfragen¶
Um den Status eines einzelnen Services abzurufen, geben Sie einen snow spcs service describe
-Befehl ähnlich dem Folgenden ein:
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 | | | |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Instanzen und Containern auflisten¶
Sie können die Instanzen und Container des Services mit den Befehlen snow spcs service list-instances
bzw. snow spcs service list-containers
auflisten.
Um die Liste der Instanzen im echo_service
-Dienst zu erhalten, geben Sie den folgenden Befehl ein:
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 |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Um die Liste der Container im echo_service
-Dienst abzurufen, geben Sie den folgenden Befehl ein:
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 | | | |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Endpunkte in einem Dienst auflisten¶
Um die Endpunkte eines benannten Services aufzulisten, geben Sie einen Befehl ähnlich dem Folgenden ein:
snow spcs service list-endpoints echo_service
+--------------+------+----------+-----------------+-----------------------------------------+
| name | port | protocol | ingress_enabled | ingress_url |
|--------------+------+----------+-----------------+-----------------------------------------|
| echoendpoint | 8000 | TCP | true | org-id-acct-id.snowflakecomputing.app |
+--------------+------+----------+-----------------+-----------------------------------------+
Diensterollen, die mit einem Dienst verbunden sind, auflisten¶
Sie können den Zugriff auf einzelne Endpunkte, die von einem Dienst bereitgestellt werden, verwalten, indem Sie Dienstrollen und Berechtigungen in der Dienstspezifikation definieren. Weitere Informationen über die Verwendung von Dienstrollen finden Sie unter GRANT SERVICE ROLE.
Um eine Liste der für einen Service erstellten Dienstrollen zu erhalten, verwenden Sie den snow spcs service list-roles
-Befehl, wie gezeigt:
snow spcs service list-roles my_service
+------------------------------------------------------------------+
| created_on | name | comment |
|----------------------------------+---------------------+---------|
| 2024-10-09 16:48:52.980000-07:00 | ALL_ENDPOINTS_USAGE | None |
+------------------------------------------------------------------+
Eigenschaften oder Parameter eines Dienstes einstellen und aufheben¶
Bemerkung
Die aktuelle Rolle muss über die Berechtigung OPERATE für den Dienst verfügen, um Eigenschaften festzulegen.
Um eine Eigenschaft oder einen Parameter für den Dienst festzulegen, geben Sie einen Befehl ähnlich dem folgenden ein:
snow spcs service set echo_service --min-instances 2 --max-instances 4
+-------------------------------------------+
| key | value |
|--------+----------------------------------|
| status | Statement executed successfully. |
+-------------------------------------------+
Um eine Eigenschaft oder einen Parameter eines Dienstes auf seinen Standardwert zurückzusetzen, geben Sie einen Befehl ähnlich dem folgenden ein:
snow spcs compute-pool unset tutorial_compute_pool --auto-resume
+-------------------------------------------+
| key | value |
|--------+----------------------------------|
| status | Statement executed successfully. |
+-------------------------------------------+
Protokolle für einen benannten Dienst anzeigen¶
Bemerkung
Die aktuelle Rolle muss über die Berechtigung MONITOR für den Dienst verfügen, um Protokolle anzuzeigen.
Um lokale Protokolle für einen benannten Dienst anzuzeigen, geben Sie einen Befehl ähnlich dem folgenden ein:
snow spcs service logs "service_1" --container-name "container_1" --instance-id "0"
Upgrade eines benannten Dienstes¶
Bemerkung
Die aktuelle Rolle muss über die Berechtigung OPERATE für den Dienst verfügen, um ihn aktualisieren zu können.
Um einen benannten Dienst zu aktualisieren, geben Sie einen Befehl ähnlich dem folgenden ein:
snow spcs service upgrade echo_service --spec-path spec.yml
+-------------------------------------------+
| key | value |
|--------+----------------------------------|
| status | Statement executed successfully. |
+-------------------------------------------+