Native Application Frameworkにおける宣言型共有用のアプリケーションパッケージ

プロバイダーとして、データコンテンツとノートブックを|declarative-app-short|にバンドルするアプリケーションパッケージを作成します。このトピックでは、アプリケーションパッケージとは何かを説明し、初期パッケージの作成からマニフェストとノートブックファイルの追加まで、アプリケーションパッケージを作成するための大まかな手順について説明します。

アプリケーションパッケージおよびライブバージョン

アプリケーションパッケージは、アプリを構成するすべてのファイルをコンテナです。これには、:doc:`マニフェスト<manifest-reference>`ファイルおよび任意の:doc:`Snowflake Notebooks</user-guide/ui-snowsight/notebooks>`が含まれます。アプリケーションパッケージを作成すると、アプリケーションパッケージのライブ(ステージング)バージョンも作成されます。ライブバージョンは、マニフェストファイルやノートブックファイルなどのファイルを追加または更新し、公開前にエクスペリエンスをプレビューおよびテストできる開発ワークスペースです。

アプリのライブバージョンに満足したら、ライブバージョンをコミットして、アプリケーションパッケージの新しい変更不可バージョンを作成し、それを公開することができます。

開発用にライブバージョンを使用すると、公開の準備ができているアプリケーションパッケージの単一の変更不可バージョンと、開発用の単一のライブバージョンを維持することができ、バージョン管理が簡素化されます。|naf|はアプリケーションパッケージのバージョン管理を自動的に行うため、手動でバージョン番号を追跡する必要はありません。

|naf|は、すべてのアプリケーションパッケージのライブバージョンを自動的に維持します。ライブバージョンを削除しても、アプリケーションパッケージの最後にコミットされたバージョンから新しいライブバージョンが自動的に作成されます。

アプリケーションパッケージを作成する

プロバイダーは、**アプリケーションパッケージ**の開発およびテストを行います。アプリケーションパッケージは、アプリでデータを共有するために必要なファイルを含み、コンシューマーがデータにアクセスする方法を定義します。

プロセスには次のステップが含まれます。

  1. **アプリケーションパッケージファイルを作成する**(初回のみ):後で公開されるアプリケーションパッケージファイルを作成します。これにより、アプリケーションパッケージのライブバージョンも作成されます。

  2. アプリケーションパッケージにコンテンツを追加する

    1. マニフェストファイルを作成または更新する:このファイルは、アプリケーションパッケージとそのコンテンツを記述したものです。

    2. ノートブックファイルをダウンロードする:ノートブックが含まれる場合は、アプリケーションパッケージに含めるコピーをダウンロードしてください。

    3. アプリケーションパッケージのライブバージョンにファイルを追加する

  3. アプリケーションパッケージをビルドする:マニフェストファイルが有効であり、マニフェストファイル内のすべてのリンクが正しいことを確認できます。

  4. アプリケーションをテストする:アプリをインストールして試してください。変更を加え、再ビルドします。

  5. アプリケーションパッケージをコミットする:公開可能な新しい変更不可バージョンのアプリを作成します。

  6. アプリケーションパッケージをリリースする:リリースされたパッケージによって、|sf-marketplace|に新しいリストをプライベートまたはパブリックで作成できます。

このプロセスは「チュートリアル:Declarative Native Apps 入門」で説明されています。このセクションには、開発のさまざまなステージで利用可能なオプションの詳細が含まれています。

アプリケーションパッケージの作成ステップを示す図。ライブパッケージを追加、ビルド、コミット、リリースを行います。この図は、スキップしてライブバージョンを一度にビルド、コミット、リリースするためのオプションのステップも示しています。

新しいアプリケーションパッケージの作成

CREATE APPLICATION PACKAGE ... TYPE=DATA<label-sa_create_application_package>`コマンドで、|declarative-app-short|パッケージを作成します。

CREATE APPLICATION PACKAGE DECL_SHARE_APP_PKG TYPE = DATA;
Copy

新しい空のアプリケーションパッケージが作成されます。これにより、編集できるアプリケーションパッケージのライブバージョンも作成されます。

アプリケーションパッケージへのコンテンツの追加

アプリケーションパッケージには以下のコンテンツを含めます。

  • :doc:`マニフェスト<manifest-reference>`ファイル(必須):アプリの構造を定義するテキストベースのファイル。

  • :doc:`Snowflake Notebook</user-guide/ui-snowsight/notebooks>`ファイル(オプション):共有ビューとテーブルを参照し、コンシューマーエクスペリエンスのフロントエンドとして機能するテキストベースのファイル。また、コードや参照の可視化、データの提示を支援するロジックを含めることもできます。

アプリパッケージのコンポーネント図

マニフェストファイルの作成または更新

プロバイダーは、:doc:`マニフェスト<manifest-reference>`ファイルを作成または更新します。これは、アプリケーションパッケージとその共有コンテンツ(ノートブック、テーブル、ビューなど)を記述します。アプリに含まれている:doc:`アプリロール<app-roles>`のような他のメタデータを定義します。

マニフェストファイルの名前は``manifest.yml``である必要があり、アプリケーションパッケージのルートレベルに追加する必要があります。

詳細については、 Declarative Native App マニフェストリファレンス をご参照ください。関連する:doc:`tutorials/getting-started`には、マニフェストファイルの例が含まれています。

ノートブックファイルの取得

:doc:`Snowflake Notebooks</user-guide/ui-snowsight/notebooks>`をアプリに含める必要がある場合、アプリケーションパッケージに含めることができるように、ノートブックファイルのコピーをダウンロードしてください。

|sf-web-interface|で:

  1. ナビゲーションメニューで、Projects » :ui:`Notebooks`を選択し、その後ダウンロードするノートブックを選択します。

  2. 左ペインのノートブックの横で、... » :ui:`Download`を選択します。

ファイルは、:file:`<notebook_name>.ipynb`という名前のファイルとしてローカルマシンにダウンロードされます。.

注釈

ノートブック環境には、PythonやStreamlitなどのAnacondaパッケージがプリインストールされています。ノートブックが追加のAnacondaパッケージを使用する場合は、コンシューマーの環境で使用できるように、それらをパッケージとしてノートブックに追加する必要があります。ノートブックにAnacondaパッケージを追加する方法 については、「ノートブックへのAnacondaパッケージの追加」を参照してください。

ライブバージョンへのファイルの追加

Snowflake CLI」のSQLコマンドを使用し、snow://package/<package_name>/versions/LIVE/ URLスキームを使用してファイルの追加とアクセスを行います。例:

  • アプリケーションパッケージにファイルを追加します。

    snow sql -q "PUT file:////Users/test_user/Documents/manifest.yml  snow://package/DECL_SHARE_APP_PKG/versions/LIVE/ OVERWRITE=TRUE AUTO_COMPRESS=false;"
    
    snow sql -q "PUT file:////Users/test_user/Documents/NOTEBOOK.ipynb  snow://package/DECL_SHARE_APP_PKG/versions/LIVE/ OVERWRITE=TRUE AUTO_COMPRESS=false;"
    
    Copy
  • ファイルがアプリケーションパッケージ内にあることを確認します。

    snow sql -q "LIST snow://package/DECL_SHARE_APP_PKG/versions/LIVE"
    
    Copy
    +--------------------------------------------------------------------------------+
    | name                          | size | md5     | last_modified                 |
    |-------------------------------+------+---------+-------------------------------|
    | /versions/live/manifest.yml   | 304  | 843a... | Wed, 23 Jul 2025 08:27:26 GMT |
    | /versions/live/NOTEBOOK.ipynb | 832  | b014... | Wed, 23 Jul 2025 04:32:22 GMT |
    +--------------------------------------------------------------------------------+
    
  • アプリケーションパッケージからファイルをダウンロードします。

    snow sql -q "GET snow://package/<package_name>/versions/LIVE/manifest.yml file://manifest.yml"
    
    Copy
  • アプリケーションパッケージからコンテンツを削除します。

    snow sql -q "RM snow://package/<package_name>/versions/LIVE/manifest.yml"
    
    Copy

アプリケーションパッケージをビルドします。

コマンド:ref:`ALTER APPLICATION PACKAGE ... BUILD<label-sa_alter_application_package>`を使用して、アプリのテスト可能なバージョンをビルドします(また、マニフェストファイルが有効で、すべてのリンクが動作することを確認します)。

ALTER APPLICATION PACKAGE DECL_SHARE_APP_PKG BUILD;
Copy

マニフェストファイルにエラーがある場合は、ビルドが失敗し、エラーの修正方法に関する情報が提供されます。これらのエラーを修正し、アプリケーションパッケージを再ビルドしてください。

ビルドされたアプリはライブ状態を維持し、アプリケーションパッケージに引き続き変更を加えることができます。

スキップする

それ以上のテストを必要としない更新については、:ref:`ALTER APPLICATION PACKAGE ... RELEASE LIVE VERSION<label-sa_alter_application_package>`コマンドを使用して一度にアプリケーションパッケージをビルド、コミット、リリースすることで先にスキップすることができます。

ALTER APPLICATION PACKAGE DECL_SHARE_APP_PKG RELEASE LIVE VERSION;
Copy

アプリケーションのテスト

アプリケーションパッケージをビルドした後、プロバイダーはライブ環境から基本的なテストを実行できます。

CREATE APPLICATION ... FROM APPLICATION PACKAGE</sql-reference/sql/create-application>`コマンドを使用して、アプリケーションパッケージからアプリケーションをインストールします。例:

CREATE APPLICATION DECL_SHARE_APP FROM APPLICATION PACKAGE DECL_SHARE_APP_PKG
Copy

必要に応じてアプリケーションパッケージのファイルを更新し、:doc:`ALTER APPLICATION PACKAGE … UPGRADE USING VERSION LIVE</sql-reference/sql/alter-application>`コマンドを使用して機能するかどうかを確認します。

ALTER APPLICATION PACKAGE DECL_SHARE_APP_PKG UPGRADE USING VERSION LIVE;
Copy

アプリロールなどの一部の機能をテストするには、まず新しいバージョンのアプリケーションパッケージをリリースし、別のコンシューマーアカウントを使用してテストする必要があります。詳細については、 Declarative Native App をインストール および Declarative Native App のコンテンツへのアクセス をご参照ください。

オプション:ライブバージョンの編集のリセット

アプリケーションパッケージのライブバージョンに加えた編集が不要になった場合は、:ref:`ALTER APPLICATION PACKAGE ... ABORT LIVE VERSION<label-sa_alter_application_package>`コマンドで編集を行う前の状態にアプリケーションパッケージをリセットすることができます。

ALTER APPLICATION PACKAGE <package_name> ABORT LIVE VERSION;
Copy

前述のコマンドを使用して現在のライブバージョンを削除すると、アプリケーションパッケージの最後にコミットされたバージョンと同じ内容の新しいライブバージョンが作成されます。ライブバージョンは最後にコミットされたバージョンにリセットされ、ライブバージョンに加えられたすべての変更は破棄されます。

アプリケーションパッケージのコミット

プロバイダーは、編集できない、公開の準備ができた新しい変更不可バージョンのアプリケーションをビルドします。

:doc:`ALTER APPLICATION PACKAGE</sql-reference/sql/alter-application>`コマンドを使用します。

ALTER APPLICATION PACKAGE <package_name> COMMIT;
Copy

アプリケーションパッケージのライブバージョンは削除されました。さらなる開発のために、新しいコミットされたバージョンからアプリケーションパッケージの新しいライブバージョンが作成されます。

アプリケーションパッケージのリリース

:doc:`ALTER APPLICATION PACKAGE ... RELEASE</sql-reference/sql/alter-application>`または:doc:`ALTER APPLICATION PACKAGE ... RELEASE LIVE VERSION</sql-reference/sql/alter-application>`コマンドで、アプリケーションパッケージをリリースします。

  • コミットされたアプリケーションパッケージをリリースします。

    ALTER APPLICATION PACKAGE <package_name> RELEASE;
    
    Copy
  • アプリケーションパッケージのライブバージョンをビルド、コミット、リリースします。

    ALTER APPLICATION PACKAGE <package_name> RELEASE LIVE VERSION;
    
    Copy

アプリケーションパッケージをリリースすると、次が行われます。

  • コミットされたアプリをコンシューマーと共有できるようにします。

  • プロバイダーがすでにコンシューマーとアプリを共有している場合、新しいバージョンがそれらのコンシューマーに自動的に利用可能になります。

  • |sf-marketplace|にアプリのライブバージョンがすでにある場合、アプリをインストールしたコンシューマーは新しいバージョンを自動的に利用できます。

アプリケーションパッケージをリリースした後、|sf-marketplace|でプライベートまたはパブリックでアプリの新しいリストを作成できます。詳細については、 宣言型共有を使用してリストを作成する をご参照ください。