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"
Copy

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
Copy
+-------------------------------------------+
| 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
Copy
+-------------------------------------------+
| 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
Copy
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|        |        |        |        |        |        |        |        |        |        |        |         | 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
Copy
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|        |        |        |        |        |        |        |        |        |        |        |         | 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
Copy
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 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
Copy
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 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
Copy
+--------------+------+----------+-----------------+-----------------------------------------+
| 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
Copy
+------------------------------------------------------------------+
| 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
Copy
+-------------------------------------------+
| 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
Copy
+-------------------------------------------+
| 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"
Copy

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
Copy
+-------------------------------------------+
| key    | value                            |
|--------+----------------------------------|
| status | Statement executed successfully. |
+-------------------------------------------+