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>
{
fromSpecification
| fromSpecificationTemplate
}
[ AUTO_SUSPEND_SECS = <num> ]
[ EXTERNAL_ACCESS_INTEGRATIONS = ( <EAI_name> [ , ... ] ) ]
[ AUTO_RESUME = { TRUE | FALSE } ]
[ MIN_INSTANCES = <num> ]
[ MIN_READY_INSTANCES = <num> ]
[ MAX_INSTANCES = <num> ]
[ LOG_LEVEL = '<log_level>' ]
[ QUERY_WAREHOUSE = <warehouse_name> ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
[ COMMENT = '{string_literal}']
条件:
fromSpecification ::= { FROM SPECIFICATION_FILE = '<yaml_file_path>' -- for native app service. | FROM @<stage> SPECIFICATION_FILE = '<yaml_file_path>' -- for non-native app service. | FROM SPECIFICATION <specification_text> }fromSpecificationTemplate ::= { FROM SPECIFICATION_TEMPLATE_FILE = '<yaml_file_stage_path>' -- for native app service. | FROM @<stage> SPECIFICATION_TEMPLATE_FILE = '<yaml_file_stage_path>' -- for non-native app service. | FROM SPECIFICATION_TEMPLATE <specification_text> } USING ( <key> => <value> [ , <key> => <value> [ , ... ] ] )
必須パラメーター¶
nameサービスの識別子(名前)を指定する文字列。サービスが作成されるスキーマで一意である必要があります。
特殊文字や大文字小文字を区別するための引用符付きの名前はサポートされていません。同じ制約は、サービスを作成するデータベース名やスキーマ名にも適用されます。つまり、引用符のないデータベース名とスキーマ名は、サービスを作成する場合に有効です。
IN COMPUTE POOL compute_pool_nameサービスを実行するアカウントのコンピュートプール名を指定します。
FROM ...-
サービス仕様書の使用
指定は、 インラインで定義することも、別のファイル で定義することもできます。
SPECIFICATION_FILE = 'yaml_file_path'または .@stage SPECIFICATION_FILE = 'yaml_file_path'または .SPECIFICATION specification_textサービス仕様を含むファイル、またはサービス仕様をインラインで指定します。サービス仕様がファイルの場合は、SPECIFICATION_FILEを使用します。Snowflake Native App で作成されたサービスについては、
@stageを省略し、アプリのルート・ディレクトリからの相対パスを指定します。他のコンテキストで作成されたサービスの場合は、Snowflake内部ステージとサービス仕様ファイルへのパスを指定します。
サービス仕様書テンプレートの使用
テンプレート仕様 をインラインで定義することも、別ファイル で定義することもできます。
SPECIFICATION_TEMPLATE_FILE = 'yaml_file_path'または .@stage SPECIFICATION_TEMPLATE_FILE = 'yaml_file_path'または .SPECIFICATION_TEMPLATE specification_textサービス仕様テンプレートを含むファイル、またはサービス仕様テンプレートをインラインで指定します。サービス仕様書のテンプレートがファイルの場合は、SPECIFICATION_TEMPLATE_FILE を使用してください。Snowflake Native App で作成されたサービスについては、
@stageを省略し、アプリのルート・ディレクトリからの相対パスを指定します。他のコンテキストで作成されたサービスの場合は、Snowflake内部ステージとサービス仕様ファイルへのパスを指定します。テンプレート指定を使用する場合は、USINGパラメーターも含める必要があります。USING ( key => value [ , key => value [ , ... ] ] )テンプレート変数とその値を指定します。
keyはテンプレート変数の名前です。テンプレート変数名は、オプションで二重引用符(")で囲むことができます。valueはテンプレートの変数に割り当てる値です。文字列値は'または$$で囲む必要があります。仕様テンプレート引数値は、英数字か有効な JSON にする必要があります。
各キーと値のペアの間にはカンマを使用します。
オプションのパラメーター¶
AUTO_SUSPEND_SECS = numSnowflakeが自動的にサービスを一時停止するまでの非アクティブ(サービスがアイドル状態)の秒数を指定します。非アクティブとは、 AUTO_SUSPEND_SECS で指定された期間に(サービス関数を呼び出す)クエリが実行されなかったことを意味します。この値を300秒以上に構成すると、自動一時停止が有効になります。詳細については、 サービスの中断 をご参照ください。
デフォルト:0秒、これはSnowflakeがサービスを自動的に中断しないことを示します。
EXTERNAL_ACCESS_INTEGRATIONS = ( EAI_name [ , ... ] )サービスが外部サイトにアクセスできるようにする、 外部アクセス統合 の名前を指定します。このリストの名前は大文字と小文字を区別します。デフォルトでは、アプリケーションコンテナーはインターネットにアクセスする権限を持っていません。サービスが外部サイトにアクセスできるようにするには、外部アクセス統合(EAI)を作成し、その統合を使用するようにサービスを構成します。詳細については、 ネットワークエグレスの構成 をご参照ください。
AUTO_RESUME = { TRUE | FALSE }ユーザーがサービスに依存する以下のいずれかのアクションを実行したときに、サービスを自動的に再開するかどうかを指定します。
AUTO_RESUME が FALSE の場合、明示的に(ALTER SERVICE ... RESUME を使用して)サービスを再開する必要があります。
デフォルト: TRUE。
MIN_INSTANCES = num実行するサービスインスタンスの最小数を指定します。
デフォルト:1。
MIN_READY_INSTANCES = numSnowflakeがサービスをリクエスト処理準備完了とみなすために必要となる、準備完了した最小サービスインスタンスを示します。ただし、 MIN_READY_INSTANCES は MIN_INSTANCES 以下である必要があることに注意してください。詳細については、 サービスのスケーリング をご参照ください。
デフォルト: MIN_INSTANCES プロパティの値。
MAX_INSTANCES = num実行するサービスインスタンスの最大数を指定します。
デフォルト: MIN_INSTANCES プロパティの値。
LOG_LEVEL = 'log_level'インジェストされ、アクティブなイベントテーブルで使用できるようにするメッセージの重大度レベルを指定します。指定されたレベル(およびそれよりも重大なレベル)のメッセージがインジェストされます。現在、LOG_LEVEL は プラットフォームイベント でのみサポートされています。コンテナログ の LOG_LEVEL の変更はサポートされていません。
レベルの詳細については、 LOG_LEVEL をご参照ください。ログレベルの設定については、 ロギング、メトリクス、トレースのレベル設定 をご参照ください。
QUERY_WAREHOUSE = warehouse_nameサービスコンテナがクエリを実行するためにSnowflakeに接続するけれども、使用するウェアハウスを明示的に指定しない場合に使用するウェアハウス。このパラメーターはNative Appsのオブジェクトリファレンスもサポートします。詳細については、 コンシューマーから参照およびオブジェクトレベル権限をリクエストする をご参照ください。
デフォルト: なし。
TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )タグ の名前とタグ文字列の値を指定します。
タグ値は常に文字列であり、タグ値の最大文字数は256です。
ステートメントでのタグの指定に関する情報については、 Tag quotas をご参照ください。
COMMENT = 'string_literal'サービスのコメントを指定します。
デフォルト: 値なし
アクセス制御の要件¶
この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
注意 |
|---|---|---|
CREATE SERVICE |
スキーマ |
|
USAGE |
コンピューティングプール |
|
READ |
ステージ |
これは仕様が保管されるステージです。 |
READ |
イメージリポジトリ |
仕様によって参照されるイメージのリポジトリ。 |
BIND SERVICE ENDPOINT |
アカウント |
パブリックエンドポイントを使用してサービスを作成するには、ロールにこの権限が必要です。これにより、パブリックエンドポイントを介したサービスへのアクセスが可能になります。サービスの所有者ロールがこの権限を失うと、パブリックエンドポイントにアクセスできなくなります。 |
Operating on an object in a schema requires at least one privilege on the parent database and at least one privilege on the parent schema.
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
CREATE SERVICE の呼び出し時には、パラメーターを次の順序で提供する必要があります。コンピューティングプール、次にサービス仕様(ステージ上のプロバイダー仕様ファイルまたはインライン仕様のいずれか)、そしてその他のプロパティの順に指定します。
メタデータについて:
注意
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
