サービスの管理

Snowpark Container Servicesを使用すると、コンテナ化されたアプリケーションを簡単に展開、管理、スケーリングできるようになります。アプリケーションイメージをアカウント内のリポジトリにアップロードしたら、アプリケーションコンテナをサービスまたはジョブとして実行します。このトピックでは、サービスの操作について説明します。

サービスは、ウェブサービスのように長期間継続し、自動的に終了することはありません。Snowflakeは実行中のサービスを管理します。たとえば、何らかの理由でサービスコンテナが終了した場合、Snowflakeはそのコンテナを再起動し、サービスが中断されることなく実行されるようにします。サービスにより多くのコンピューティングパワーなどのリソースが必要な場合、Snowflakeはコンピューティングプールに追加のノードをプロビジョニングします。

コンテナサービスの操作の詳細については、 Snowpark Container Services: サービスの操作 をご参照ください。

このトピックでは、サービスを使用して次のタスクを実行する方法を説明します。

リスト表示やドロップなどの一般的な操作では、 Snowflake CLI は Snowflakeオブジェクトの管理 で説明されている snow object コマンドを使用します。

Snowpark Container Servicesのサービスを作成する

Snowparkのコンテナサービスには、次が必要です。

  • コンピューティングプール:Snowflakeは指定したコンピューティングプールでサービスを実行します。

  • サービス仕様ファイル: この仕様により、サービスを設定および実行するために必要な情報がSnowflakeに提供されます。

サービスを作成するには、次のような snow spcs service create コマンドを入力します。

snow spcs service create "job_1" --compute-pool "pool_1" --spec-path "/some-dir/spec_file.yaml"
Copy

詳細については、 Snowflakeオブジェクトの管理 をご参照ください。

プロジェクト定義からのサービスの作成とデプロイ

snowflake.yml プロジェクト定義ファイルからサービスを作成し、 snow spcs service deploy コマンドを実行します。

snowflake.yml プロジェクト定義ファイルのサンプルは次のとおりです。

definition_version: 2
entities:
  my_service:
    type: service
    identifier: my_service
    stage: my_stage
    compute_pool: my_compute_pool
    spec_file: spec.yml
    min_instances: 1
    max_instances: 2
    query_warehouse: my_warehouse
    auto_resume: true
    external_access_integrations:
      - my_external_access
    secrets:
        cred: my_cred_name
    artifacts:
      - spec.yml
    comment: "My service"
    tags:
      - name: test_tag
        value: test_value
Copy

以下のテーブルは、コンピューティングプールプロジェクト定義のプロパティを表しています。

コンピューティングプールのプロジェクト定義のプロパティ

プロパティ

定義

タイプ

required, string

service でなければなりません。

ステージ

required, string

サービス仕様ファイルがあるステージ。

compute_pool

required, string

サービスが実行されるコンピューティングプール。

spec_file

required, string

ステージングされたサービス仕様ファイルへのパス。

識別子

optional, string

エンティティのSnowflake識別子。この値には次のような形式があります。

  • 文字列識別子テキスト

    identifier: my-service
    
    Copy

    引用符で囲まれていない識別子と引用符で囲まれた識別子の両方がサポートされています。引用符で囲まれた識別子を使用するには、 YAML の値に引用符を含めます(例えば、 '"My Image Repository")。

  • オブジェクト

    identifier:
      name: my-service
      schema: my-schema # optional
      database: my-db # optional
    
    Copy

    注釈

    schema または database を指定し、 name プロパティに完全修飾名を使用するとエラーが発生します(mydb.schema1.my-app など)。

min_instances

optional, string

実行するサービスインスタンスの最小数。

デフォルト: 1

max_instances

optional, string

実行するサービスインスタンスの最大数。

query_warehouse

optional, string

使用するウェアハウスを明示的に指定せずに、サービスコンテナがSnowflakeに接続してクエリを実行する場合に使用するウェアハウス。

auto_resume

optional, string

サービス関数またはイングレスが呼び出されたときに自動的に再開するかどうか。

デフォルト: True

external_access_integrations

optional, string sequence

このエンティティが外部ネットワークにアクセスするために必要な外部アクセス統合の名前。

secrets

optional, dictionary

シークレット変数の名前と値。この変数を使用してシークレットを参照できるようにします。

アーティファクト

optional, string sequence

デプロイルートに追加するファイルソースと宛先のペアのリスト。次のアーティファクトプロパティを使用できます。

  • src: コードソースファイルまたはファイルへのパス

  • dest: アーティファクトをデプロイするディレクトリへのパス。

    ディレクトリを参照する宛先パスは、 / で終わる必要があります。globパターンの宛先が / で終わらない場合はエラーになります。省略された場合、 dest のデフォルトは src と同じ文字列になります。

    各項目に対して、 dict の代わりに文字列を渡すこともできます。この場合、値は srcdest の両方として扱われます。

src が(globではなく)1つのファイルだけを参照している場合、 dest はターゲット <パス> または <パス/名前> を参照できます。

各項目に対して、 dict の代わりに文字列を渡すこともできます。この場合、値は srcdest の両方として扱われます。

コメント

optional, string

コンピューティングプールに関連付けるコメント。

tags

optional, Tag sequence

コンピューティングプールのタグ名と値。詳細については、 Tag quotas をご参照ください

サービスを作成してデプロイするには、次のようにします。

  1. 現在のディレクトリをプロジェクト定義ファイルのあるディレクトリに変更します。

  2. 以下のような snow spcs service deploy コマンドを実行します。

    snow spcs service deploy
    
    Copy
    +---------------------------------------------------------------------+
    | key    | value                                                      |
    |--------+------------------------------------------------------------|
    | status | Service MY_SERVICE successfully created.                   |
    +---------------------------------------------------------------------+
    

サービスを一時停止および再開する

指定したサービスを一時停止するには、次のような snow spcs service suspend コマンドを入力します。

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

一時停止したサービスを再開するには、次のような snow spcs service resume コマンドを入力します。

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

サービスのステータス情報を取得する

注釈

現在のロールがサービスのステータスを取得するには、 MONITOR 権限を持っている必要があります。

サービスをリストする

snow spcs service list コマンドは、 PENDING や RUNNING のようなサービスのランタイムステータスやアップグレードステータスを含む、全サービスの概要を返します。名前付きサービスのステータスを取得するには、次のようなコマンドを入力します。

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

名前付きサービスのステータスを取得する

個々のサービスのステータスを取得するには、次のような snow spcs service describe コマンドを入力します。

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

インスタンスとコンテナをリストする

サービスのインスタンスとコンテナは、それぞれ snow spcs service list-instancessnow spcs service list-containers コマンドで一覧表示できます。

echo_service サービス内のインスタンスのリストを取得するには、次の snow spcs service list-instances コマンドを入力します。

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

echo_service サービス内のコンテナーのリストを取得するには、次の snow spcs service list-containers コマンドを入力します。

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

サービス内のエンドポイントをリストする

指定したサービスのエンドポイントをリストするには、次のようなコマンド snow spcs service list-endpoints を入力します。

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

サービスに関連付けられているすべてのサービスロールをリストする

サービス仕様でサービスの役割と権限を定義することで、サービスによって公開される個々のエンドポイントへのアクセスを管理できます。サービス・ロールの使用方法の詳細については、 GRANT SERVICE ROLE をご参照ください。

サービスに作成されたサービス・ロールのリストを取得するには、 snow spcs service list-roles コマンドを使用します。

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

サービスのプロパティまたはパラメーターを設定および設定解除する

注釈

プロパティを設定するには、現在のロールがサービス上で OPERATE 権限を持っている必要があります。

サービスのプロパティまたはパラメーターを設定するには、次のような snow spcs service set コマンドを入力します。

snow spcs service set echo_service --min-instances 2 --max-instances 4
Copy
+-------------------------------------------+
| key    | value                            |
|--------+----------------------------------|
| status | Statement executed successfully. |
+-------------------------------------------+

サービスのプロパティまたはパラメーターをデフォルト値にリセットするには、次のようなコマンドを入力します。

snow spcs compute-pool unset tutorial_compute_pool --auto-resume
Copy
+-------------------------------------------+
| key    | value                            |
|--------+----------------------------------|
| status | Statement executed successfully. |
+-------------------------------------------+

名前付きサービスのログを表示する

注釈

ログを表示するには、現在のロールに MONITOR 権限が必要です。

指定したサービスのローカルログを表示するには、次のようなコマンド snow spcs service logs を入力します。

snow spcs service logs "service_1" --container-name "container_1" --instance-id "0"
Copy

名前付きサービスをアップグレードする

注釈

サービスをアップグレードするには、現在のロールに OPERATE 権限が必要です。

名前付きサービスをアップグレードするには、次のような snow spcs service upgrade コマンドを入力します。

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