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 snow spcs service create-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 snow spcs service suspend-Befehl ähnlich dem folgenden ein:

snow spcs service suspend echo_service
Copy
+-------------------------------------------+
| key    | value                            |
|--------+----------------------------------|
| status | Statement executed successfully. |
+-------------------------------------------+

Um einen angehaltenen Dienst fortzusetzen, geben Sie einen snow spcs service resume-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 Befehl snow spcs service list gibt eine Übersicht über alle Dienste zurück, einschließlich des Laufzeitstatus der Dienste, wie PENDING oder RUNNING, und des Upgrade-Status. 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 Dienstes 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 Dienst echo_service abzurufen, geben Sie den folgenden snow spcs service list-instances-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 snow spcs service list-containers-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 Dienstes aufzulisten, geben Sie einen snow spcs service list-endpoints-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 Dienstrollen zu erhalten, die für einen Dienst erstellt wurden, verwenden Sie den Befehl snow spcs service list-roles, 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 eines Dienstes festzulegen, geben Sie einen snow spcs service set-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 snow spcs service logs-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 snow spcs service upgrade-Befehl ähnlich dem folgenden ein:

snow spcs service upgrade echo_service --spec-path spec.yml
Copy
+-------------------------------------------+
| key    | value                            |
|--------+----------------------------------|
| status | Statement executed successfully. |
+-------------------------------------------+