CREATE SERVICE¶
現在のスキーマに新しい Snowpark Container Servicesサービス を作成します。その名前のサービスがすでに存在する場合は、 DROP SERVICE コマンドを使用して以前に作成したサービスを削除します。
サービスの複数のインスタンスを実行することができます。各サービスインスタンスは、コンピューティングプール内のノード上で一緒に実行される、サービス仕様ファイルで定義されたコンテナの集まりです。サービスの複数のインスタンスを実行する場合、ロードバランサーが受信トラフィックを管理します。
- こちらもご参照ください。
ALTER SERVICE、 DESCRIBE SERVICE、 DROP SERVICE、 SHOW SERVICES
構文¶
CREATE SERVICE [ IF NOT EXISTS ] <name>
IN COMPUTE POOL <compute_pool_name>
{
FROM @<stage>
SPECIFICATION_FILE = '<yaml_file_stage_path>'
|
FROM SPECIFICATION <specification_text>
}
[ EXTERNAL_ACCESS_INTEGRATIONS = ( <EAI_name> [ , ... ] ) ]
[ AUTO_RESUME = { TRUE | FALSE } ]
[ MIN_INSTANCES = <num> ]
[ MAX_INSTANCES = <num> ]
[ QUERY_WAREHOUSE = <warehouse_name> ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
[ COMMENT = '{string_literal}']
必須パラメーター¶
name
サービスの識別子(名前)を指定する文字列。サービスが作成されるスキーマで一意である必要があります。
特殊文字や大文字小文字を区別するための引用符付きの名前はサポートされていません。同じ制約は、サービスを作成するデータベース名やスキーマ名にも適用されます。つまり、引用符のないデータベース名とスキーマ名は、サービスを作成する場合に有効です。
IN COMPUTE POOL compute_pool_name
サービスを実行するアカウントのコンピューティングプール名を指定します。
FROM stage
仕様ファイルが保管されているSnowflake内部ステージを指定します。例えば、
@tutorial_stage
です。SPECIFICATION_FILE = 'yaml_file_stage_path'
ステージ上の サービス仕様 ファイルへのパスを指定します。例えば、
'some-dir/echo_spec.yaml'
です。FROM SPECIFICATION specification_text
オプションのパラメーター¶
EXTERNAL_ACCESS_INTEGRATIONS = ( EAI_name [ , ... ] )
サービスが外部サイトにアクセスできるようにする、 外部アクセス統合 の名前を指定します。このリストの名前は大文字と小文字を区別します。デフォルトでは、アプリケーションコンテナーはインターネットにアクセスする権限を持っていません。サービスが外部サイトにアクセスできるようにするには、外部アクセス統合(EAI)を作成し、その統合を使用するようにサービスを構成します。詳細については、 ネットワークエグレス をご参照ください。
AUTO_RESUME = { TRUE | FALSE }
サービス関数またはイングレスが呼び出された場合に、サービスを自動的に再開するかどうかを指定します。
AUTO_RESUME が FALSE の場合、明示的に(ALTER SERVICE ... RESUME を使用して)サービスを再開する必要があります。
AUTO_RESUME が TRUE の場合、Snowflakeはサービス関数が呼び出されたとき、またはリクエストを受信したとき(ingress)に、中断したサービスを再開します。
MIN_INSTANCES = num
実行するサービスインスタンスの最小数を指定します。
デフォルト: 1。
MAX_INSTANCES = num
実行するサービスインスタンスの最大数を指定します。
QUERY_WAREHOUSE = warehouse_name
サービスコンテナがクエリを実行するためにSnowflakeに接続するけれども、使用するウェアハウスを明示的に指定しない場合に使用するウェアハウス。
デフォルト: なし。
TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )
タグ の名前とタグ文字列の値を指定します。
タグ値は常に文字列であり、タグ値の最大文字数は256です。
ステートメントでのタグの指定に関する情報については、 オブジェクトおよび列のタグクォータ をご参照ください。
COMMENT = 'string_literal'
サービスのコメントを指定します。
デフォルト: 値なし
アクセス制御の要件¶
この SQL コマンドの実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
メモ |
---|---|---|
CREATE SERVICE |
スキーマ |
|
USAGE |
コンピューティングプール |
|
READ |
ステージ |
これは仕様が保管されるステージです。 |
READ |
イメージリポジトリ |
仕様によって参照されるイメージのリポジトリ。 |
BIND SERVICE ENDPOINT |
アカウント |
パブリックエンドポイントを使用してサービスを作成するには、ロールにこの権限が必要です。これにより、パブリックエンドポイントを介したサービスへのアクセスが可能になります。サービス所有者ロールがこの権限を失うと、パブリックエンドポイントにアクセスできなくなります。 |
スキーマ内の任意のオブジェクトを操作するには、親データベースとスキーマに対する USAGE 権限も必要であることに注意してください。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
メタデータについて:
注意
Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。
例¶
実行している2つのサービスインスタンスが含まれるサービスを作成します。
CREATE SERVICE echo_service
IN COMPUTE POOL tutorial_compute_pool
FROM @tutorial_stage
SPECIFICATION_FILE='echo_spec.yaml'
MIN_INSTANCES=2
MAX_INSTANCES=2