アプリケーションパッケージの作成と管理¶
このトピックでは、プロバイダーが Snowflake Native App を開発するためのアプリケーションパッケージを作成する方法について説明します。
アプリケーションパッケージについて¶
アプリケーションパッケージとは、 Snowflake Native App で使用されるデータコンテンツとアプリケーションロジックをカプセル化したコンテナです。アプリケーションパッケージには、アプリケーション用に定義されたバージョンとパッチに関する情報も含まれています。
アプリの各バージョンには、マニフェストとセットアップスクリプトのそれぞれのバージョンが必要です。
- マニフェストファイル:
マニフェスト ファイルには、アプリケーション パッケージが Snowflake Native App を作成および管理するために必要な情報が含まれています。これには、セットアップスクリプトの場所、バージョン定義、アプリの設定情報が含まれます。
詳細については、 アプリのマニフェストファイルの作成 をご参照ください。
- セットアップスクリプト:
セットアップスクリプトには、コンシューマーアカウントで、または開発やテスト中にローカルで、アプリのインストール時に実行される SQL ステートメントが含まれます。
詳細については、 Create the setup script をご参照ください。
注釈
マニフェストファイルまたはセットアップスクリプトを作成することなく、アプリケーションパッケージを作成できます。ただし、アプリを開発したりテストしたりするには、これらのファイルをステージにアップロードして、アプリケーションパッケージからアクセスできるようにする必要があります。
リリースチャンネルについて¶
リリースチャネルは、 Snowflake Native Apps のリリースライフサイクルを管理します。これらにより、プロバイダーはアプリのバージョンを作成および管理することや、開発のさまざまなステージですべてのコンシューマーに対してまたはコンシューマーの特定のグループに対してアプリを公開することができます。
注意
アプリケーションパッケージを作成すると、リリースチャネルはデフォルトで有効になります。アプリケーションパッケージのリリースチャネルを有効にした後は、無効にすることはできません。
リリースチャネルを使用してアプリのリリースライフサイクルを管理する方法の詳細については、 リリースチャネルを使用してアプリを公開する をご参照ください。
以前のプロセスを使用してバージョンとパッチを管理するには、アプリケーションパッケージの作成時にリリースチャネルを明示的に無効にする必要があります。ただし、新しいアプリ開発については、Snowflakeはリリースチャネルを使用してアプリのリリースライフサイクルを管理することを推奨します。
バージョンとパッチを管理するための古い機能の使用については、 Develop a new version of an app (Legacy) をご参照ください。
アプリケーションパッケージの作成に必要な権限¶
アプリケーションパッケージを作成するには、使用するロールにグローバル権限(CREATE APPLICATION PACKAGE)が付与されている必要があります。
アプリケーションパッケージを作成する¶
次のいずれかのメソッドを使用して、アプリケーションパッケージを作成できます。
Snowsight
Snowsight を使用してアプリケーションパッケージを作成する¶
Snowsight にサインインします。
ナビゲーションメニューで Projects » App packages を選択します。
Create を選択し、右ペインの App Package をクリックします。
アプリケーションパッケージの名前を入力します。
アプリケーションパッケージの対象コンシューマーを選択します。
Distribute to accounts outside of your organization を選択すると、アプリケーションパッケージを組織外で利用できるようになります。このオプションを選択すると、アプリケーションパッケージで定義されている各バージョンとパッチについて、 自動セキュリティスキャン が開始されます。
Distribute to accounts in your organization を選択して、組織内でアプリケーションパッケージを利用できるようにします。自動セキュリティスキャンは開始されません。
(オプション)申請パッケージに対するコメントを入力します。これらのコメントはコンシューマーには表示されません。
Add を選択します。
SQL コマンドを使用してアプリケーションパッケージを作成する¶
SQL を使用してアプリケーションパッケージを作成するには、次の例に示すように CREATE APPLICATION PACKAGE コマンドを使用します。
CREATE APPLICATION PACKAGE my_application_package;
このコマンドは、Snowflakeアカウントに my_application_package という名前のアプリケーションパッケージを作成しますデフォルトでは、アプリケーションパッケージの リリースチャネル は有効です。
アプリケーションパッケージを作成したら、 SHOW APPLICATION PACKAGES コマンドを使用して、利用可能なアプリケーションパッケージのリストを表示します。
Snowflake CLI を使用してアプリケーションパッケージを作成する¶
Snowflake CLI を使用してアプリを開発している場合、 snow app run コマンドを実行するとアプリケーションパッケージが作成されます。このコマンドは、Snowflakeアカウントにアプリケーションパッケージを作成し、ステージにコードファイルをアップロードし、アプリケーションパッケージからアプリケーションを作成またはアップグレードします。
アプリケーションパッケージに必要な権限を付与する¶
アプリケーションパッケージの作成や使用に関連するタスクの中には、アプリケーションパッケージに対する特定の権限が必要なものがあります。以下のテーブルでは、これらのタスクを実行するために必要な権限について説明します。
権限 |
タスク |
|---|---|
ATTACH LISTING |
リストにアプリケーションパッケージを追加します。 |
DEVELOP |
アプリケーションパッケージから開発モードで APPLICATION オブジェクトを作成します。 |
INSTALL |
アプリケーションパッケージに基づいて APPLICATION オブジェクトを作成します。 |
MANAGE RELEASES |
リリースディレクティブを指定し、バージョンとパッチレベルを表示します。 |
MANAGE VERSIONS |
アプリケーションパッケージにバージョンとパッチレベルを追加します。 |
OWNERSHIP |
上記のすべての作業を実行します。 |
Snowsight を使用してアプリケーションパッケージに対する権限を付与する¶
Snowsight にサインインします。
ナビゲーションメニューで Projects » App packages を選択します。
アプリケーションパッケージを選択し、 Settings タブを選択します。
Privileges セクションで、付与する権限の横にある編集アイコンを選択します。
Add Role を選択し、権限を付与するロールを選択します。
Save を選択します。
権限の隣にロールが表示されます。
SQL コマンドを使用したアプリケーションパッケージの権限付与¶
SQL を使用してアプリケーションパッケージに対する権限をロールに付与するには、次の例に示すように、 GRANT <権限> ... TO ROLE コマンドを使用します。
GRANT MANAGE RELEASES ON APPLICATION PACKAGE hello_snowflake_package TO ROLE app_release_mgr;
このコマンドは、 app_release_mgr ロールに MANAGE RELEASES 権限を付与します同じコマンドを使用して、アプリケーションパッケージに対して利用可能なその他の権限を付与することができます。
アプリケーションパッケージのデフォルトリリースディレクティブを設定する¶
リリースディレクティブは、コンシューマーがアプリをインストールしたときや、インストールされたアプリが自動的にアップグレードされたときに可用性となるアプリのバージョンとパッチを決定します。リリースディレクティブのセットに関する情報については、 Set the release directive for an app (Legacy) をご参照ください。
コンシューマーがアプリの複数のインスタンスをインストールできるようにする¶
プロバイダーは、コンシューマーがアプリケーションの複数のインスタンスをインストールできるように、アプリケーションパッケージを構成できます。
アプリの複数のインスタンスを有効にするには、 CREATE APPLICATION PACKAGE または ALTER APPLICATION PACKAGE コマンドの MULTIPLE_INSTANCES = TRUE 句を使用します。
If multiple instances are allowed for an app, consumers can install a maximum of 30 instances of the app in their account.
You cannot set this property for an application package that is included in a trial listing. An app installed from a paid listing can't have multiple instances using the DEFAULT release channel.
注意
MULTIPLE_INSTANCES プロパティを TRUE に設定した後、それを解除したり FALSE に設定したりすることはできません。
アプリケーションパッケージの所有権を譲渡する¶
アプリケーションパッケージを作成した後、アプリケーションパッケージの所有権を別のアカウントレベルのロールに譲渡することができます。
Snowsight を使用して所有権を譲渡する¶
Snowsight にサインインします。
ナビゲーションメニューで Projects » App packages を選択します。
所有権を譲渡するアプリケーションパッケージの横にある ... を選択し、 Transfer Ownership を選択します。
Transfer to で、新しいアカウントレベルのロールを選択します。
Transfer を選択します。
SQL コマンドを使用して所有権を譲渡する¶
SQL を使用して、アプリケーションパッケージの所有権を別のアカウントレベルのロールに譲渡するには、次の例に示すように、 GRANT OWNERSHIP コマンドを使用します。
GRANT OWNERSHIP ON APPLICATION PACKAGE hello_snowflake_package TO ROLE native_app_dev;
アプリケーションパッケージを削除する¶
アプリケーションパッケージに対する OWNERSHIP 権限を持つプロバイダーは、アカウントからそのアプリケーションパッケージを削除することができます。ただし、プロバイダーが、現在リストに関連付けられているアプリケーションパッケージを削除することはできません。
アプリケーションパッケージを削除すると、プロバイダーアカウントで利用できなくなります。
注意
リストと添付されたアプリケーションパッケージを削除した後、コンシューマーはアプリケーションパッケージから作成された Snowflake Native App を表示することはできますが、アクセスすることはできません。コンシューマーが Snowflake Native App にアクセスしようとすると、アプリケーションパッケージが削除されたことを示すエラーを受け取ります。
Snowsight を使用してアプリケーションパッケージを削除する¶
Snowsight にサインインします。
ナビゲーションメニューで Projects » App packages を選択します。
削除するアプリケーションパッケージの横にある ... を選択し、 Drop を選択します。
SQL コマンドを使用してアプリケーションパッケージを削除する¶
SQL を使用してアプリケーションパッケージを削除するには、次の例に示すように、 DROP APPLICATION PACKAGE コマンドを実行します。
DROP APPLICATION PACKAGE hello_snowflake_package;