CREATE APPLICATION¶
アプリケーションパッケージまたはリストに基づき、 Snowflake Native App を作成します。プロバイダーはこのコマンドを使って、開発アカウントにアプリをインストールします。
このコマンドを実行すると、 セットアップスクリプト が実行され、アプリが作成されます。
- こちらもご参照ください。
ALTER APPLICATION、 DESCRIBE APPLICATION、 DROP APPLICATION、 SHOW APPLICATIONS
構文¶
CREATE APPLICATION <name> FROM APPLICATION PACKAGE <package_name>
[ USING RELEASE CHANNEL { QA | ALPHA | DEFAULT } ]
[ COMMENT = '<string_literal>' ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
[ AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE } ]
[ WITH FEATURE POLICY = <policy_name> ]
CREATE APPLICATION <name> FROM APPLICATION PACKAGE <package_name>
USING <path_to_version_directory>
[ DEBUG_MODE = { TRUE | FALSE } ]
[ COMMENT = '<string_literal>' ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [, ...] ) ]
[ AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE } ]
[ WITH FEATURE POLICY = <policy_name> ]
CREATE APPLICATION <name> FROM APPLICATION PACKAGE <package_name>
USING VERSION <version_identifier> [ PATCH <patch_num> ]
[ DEBUG_MODE = { TRUE | FALSE } ]
[ COMMENT = '<string_literal>' ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
[ AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE } ]
[ WITH FEATURE POLICY = <policy_name> ]
CREATE APPLICATION <name> FROM LISTING <listing_name>
[ USING RELEASE CHANNEL { QA | ALPHA | DEFAULT } ]
[ COMMENT = '<string_literal>' ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
[ BACKGROUND_INSTALL = { TRUE | FALSE } ]
[ AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE } ]
[ WITH FEATURE POLICY = <policy_name> ]
必須パラメーター¶
nameアプリの識別子を指定します。アカウントに対して一意である必要があります。
また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例:
"My object")。二重引用符で囲まれた識別子も大文字と小文字が区別されます。詳細については、 識別子の要件 をご参照ください。
FROM APPLICATION PACKAGE package_nameアプリの作成に使用するアプリケーションパッケージの名前を指定します。ステージやバージョン/パッチを指定せずにアプリケーションパッケージからアプリを作成するためにこの句を使用するには、アプリケーションパッケージにデフォルトのリリースディレクティブが定義されている必要があります。
この句は、アプリケーションパッケージと同じアカウントでアプリを作成する場合にのみ使用できます。この句は、開発モードでアプリを作成する場合には使用できません。
FROM LISTING listing_nameアプリの作成に使用されたアプリケーションパッケージを含むリストの名前を指定します。
USING RELEASE CHANNEL QA | ALPHA | DEFAULTアプリの作成に使用されたアプリケーションパッケージまたはリストで定義されたリリースチャネルを指定します。この句を指定しない場合、デフォルトのリリースチャネルが使用されます。
QAは品質保証リリースチャネルを指定します。ALPHAはアルファリリースチャネルを指定します。DEFAULTはデフォルトのリリースチャネルを指定します。
この句は、リリースディレクティブが定義されているアプリケーションパッケージからアプリを作成する場合、またはリストからアプリを作成する場合にのみ使用できます。
USING path_to_version_directoryアプリが必要とするファイルを含むステージへのパスを指定します。
USING version [ PATCH patch_num ]アプリの作成に使用したアプリケーションパッケージで定義されているバージョンと、オプションでパッチを指定します。
オプションのパラメーター¶
COMMENT = 'string_literal'アプリのコメントを指定します。
デフォルト: 値なし
DEBUG_MODE = { TRUE | FALSE }作成されたアプリの デバッグモード を有効または無効にします。デバッグモードでは、プロバイダーはアプリのコンテンツを表示することができます。
TRUEは、インストールされたアプリのデバッグモードを有効にします。FAlSEは、インストールされたアプリのデバッグモードを無効にします。
注釈
デバッグモードは、以下の条件下でのみ有効にできます。
アプリがアプリケーションパッケージと同じアカウントにある。
アプリは特定のバージョンに基づいて、あるいは名前付きステージにあるファイルから作成される。
TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )タグ の名前とタグ文字列の値を指定します。
タグ値は常に文字列であり、タグ値の最大文字数は256です。
ステートメントでのタグの指定に関する情報については、 タグの割り当て をご参照ください。
BACKGROUND_INSTALL = { TRUE | FALSE }バックグラウンドでリストからアプリを作成します。この句を指定すると、コマンドはすぐにプロンプトに戻り、インストール処理はバックグラウンドで続行されます。インストールの状態をモニターするには、 DESCRIBE APPLICATION コマンドを使用します。
注釈
この句を使用すると、コマンドが失敗してもアプリは作成されます。この場合は、 DROP APPLICATION コマンドを再実行する前に、 CREATE APPLICATION コマンドを使用してオブジェクトを削除します。
この句は主に、バックグラウンドで Snowflake Native App をインストールするために Snowsight によって使用されます。バックグラウンドインストールでは、コンシューマーはインストール中に Snowsight にあるリストから移動することができます。プロバイダーは、リストを公開する前にリスティングから Snowflake Native App のインストールをテストする場合にこの句を使用する可能性があります。
AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE }アプリで ログとイベント共有 を有効にします。
WITH FEATURE POLICY = policy_name指定した機能ポリシーでアプリを作成します。アプリが機能ポリシーで禁止されているオブジェクト(データベースなど)を作成しようとすると、コマンドは失敗します。
アクセス制御の要件¶
この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
注意 |
|---|---|---|
CREATE APPLICATION |
アカウント |
|
DEVELOP |
アプリケーションパッケージ |
|
INSTALL |
アプリケーションパッケージ |
|
IMPORT SHARE CREATE APPLICATION |
アカウント |
これらの権限は、アプリケーションパッケージを含むアカウントとは異なるアカウントでアプリケーションを作成するために必要です。 |
APPLY FEATURE POLICY APPLY または OWNERSHIP |
アカウント 機能ポリシー |
これらの権限は、 WITH FEATURE POLICY 句を使用してアプリを作成するときに機能ポリシーを適用するために必要です。 |
使用上の注意¶
アプリケーションパッケージから直接アプリを作成するには、アプリケーションパッケージでデフォルトのリリースディレクティブを指定する必要があります。
アプリはデータベースと以下の点で異なります。
アプリは一時的であってはならない。
アプリの OWNERSHIP 権限を持つロールは、以下の能力と制限を持つ。
データベースをドロップしたり、 COMMENT プロパティやアプリ固有のプロパティを変更したりすることができる。
アプリケーションロールに付与された権限を介する場合を除き、アプリのコンテンツを表示したり変更したりすることはできない。
スキーマやデータベースロールのようなデータベースレベルのオブジェクトを作成することはできない。
メタデータについて:
注意
Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。
CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、単一のトランザクションで、古いオブジェクトが削除されて新しいオブジェクトが作成されます。
例¶
CREATE APPLICATION hello_snowflake_app
FROM APPLICATION PACKAGE hello_snowflake_package
USING VERSION v1;
+---------------------------------------------------------+
| status |
|---------------------------------------------------------|
| Application 'hello_snowflake_app' created successfully. |
+---------------------------------------------------------+
CREATE APPLICATION hello_snowflake_app
FROM APPLICATION PACKAGE hello_snowflake_package
USING '@hello_snowflake_code.core.hello_snowflake_stage';
+---------------------------------------------------------+
| status |
|---------------------------------------------------------|
| Application 'hello_snowflake_app' created successfully. |
+---------------------------------------------------------+