Snowflake Native App マニフェスト参照

このトピックでは、 Snowflake Native App マニフェストファイルの構造とフィールドについて説明します。

manifest_version フィールド

マニフェストのファイル形式のバージョンを指定します。

このフィールドは必須です。

manifest_version: 1

このバージョンのマニフェストファイルは、 Snowflake Native Apps の現在およびレガシーの機能をサポートしています。

例: manifest_version: 1

manifest_version: 2

このバージョンのマニフェストファイルは、権限の自動付与を含む追加機能をサポートしています。

注意

マニフェストファイルのバージョン2を使用する前に、 マニフェストファイルについて で説明されているセキュリティ上の影響を考慮してください。

例: manifest_version: 2

manifest_version の例

manifest_version: 2
Copy

version フィールド

アプリのバージョンに関連するフィールドを含むブロックを定義します。バージョンとパッチの詳細については、 アプリを更新する をご参照ください。

注釈

CREATE APPLICATION PACKAGE または ALTER APPLICATION PACKAGE コマンドを使用して定義されたバージョンとパッチは、マニフェストファイルで定義されたものよりも優先順位が高くなります。

このフィールドはオプションです。

name

スキーマの名前を指定します。

このフィールドはオプションです。

例: name: v1

patch

デフォルトのパッチ番号を指定します。

このフィールドはオプションです。

例: patch: 1

label

コンシューマーに表示されるバージョンの名前を指定します。

このフィールドはオプションです。

例: label: "Initial Release"

comment

バージョンのコメントを指定します。このコメントは、 Snowsight に表示されます。または、プロバイダーが SHOW VERSIONS IN APPLICATION PACKAGE コマンドを実行した場合に表示されます。

このフィールドはオプションです。

例: comment: "This is the initial release of the app."

version: の例

version:
  name: v1
  patch: 1
  label: "Initial Release"
  comment: "This is the initial release of the app."
Copy

artifacts: フィールド

アプリが使用するリソースを指定するブロックを定義します。

このフィールドは必須です。

setup_script:

Snowflake Native App のインストール時またはアップグレード時に実行されるセットアップスクリプトのパスとファイル名を指定します。値を指定しない場合、アプリはマニフェストファイルと同じディレクトリにあるデフォルト値 setup.sql を使用します。

例: setup_script: scripts/setup.sh

readme:

アプリとその機能の概要を提供するMarkdownのReadmeファイルへのパスを指定します。

Streamlitアプリの場合は、 default_streamlit プロパティに値が指定されないと、インストールされた Snowflake Native App を表示する際に、このファイルのコンテンツがコンシューマーに表示されます。

このファイルの場所は、マニフェストファイルの場所から相対的に指定されます。

このフィールドはオプションですが、SnowflakeではアプリにReadmeファイルを含めることを推奨しています。

例: readme: docs/README.md

default_streamlit_app:

Snowflake Native App にStreamlitアプリが含まれている場合、このプロパティは、コンシューマーが利用可能なデフォルトのStreamlitアプリのスキーマと名前を指定します。

アプリにStreamlitアプリが含まれている場合、このフィールドは必須です。

extension_code:

Java、Python、Scalaなどの拡張コード言語の使用を有効または無効にします。

例: extension_code: true

container_services:

コンテナを使用するアプリで使用されるコンテナイメージの場所を指定します。詳細については、 コンテナを使用したアプリで使用されるコンテナイメージを指定する をご参照ください。

コンテナ付きアプリでは、このフィールドは必要です。

uses_gpu:

コンテナを使用するアプリが GPU を使用することを示します。

コンテナ付きアプリでは、このフィールドは必要です。

例: uses_gpu: true

images:

コンテナを使用するアプリで使用される各コンテナイメージへのパスを指定します。

コンテナ付きアプリでは、このフィールドは必要です。

例:

images:
- /spcs_app/napp/img_repo/eap_frontend
- /spcs_app/napp/img_repo/eap_backend
- /spcs_app/napp/img_repo/eap_router
Copy

artifacts の例

artifacts:
  setup_script: scripts/setup.sql
  readme: docs/README.md
  default_streamlit_app: apps/main.py
  extension_code: true
  container_services:
      uses_gpu: true
      images:
        - /spcs_app/napp/img_repo/eap_frontend
        - /spcs_app/napp/img_repo/eap_backend
Copy

configuration フィールド

アプリの構成プロパティを含むブロックを指定します。

このフィールドはオプションです。

log_level:

アプリ Snowflake Native App で使用するログレベルを指定します。

このプロパティに値を設定しないと、デフォルトのログデータはキャプチャされません。

サポートされる値については、 ロギング、メトリクス、トレースのレベル設定 をご参照ください。

trace_level:

アプリで使用するトレースイベントレベルを指定します。プロバイダーがトレースを有効にすると、アプリはすべてのクエリとストアドプロシージャ呼び出しの開始時刻と終了時刻を自動的にキャプチャします。

注意

trace_level プロパティが OFF 以外の値に設定されたアプリを公開すると、イベントテーブルを表示できるコンシューマーアカウントのすべてのユーザーに、非表示のストアドプロシージャへの呼び出しが公開される可能性があります。

このプロパティに値を設定しないと、トレースイベントはキャプチャされません。

trace_level プロパティのサポートされている値については ロギング、メトリクス、トレースのレベル設定 をご参照ください。

metric_level:

アプリに使用するメトリック・レベルを指定します。プロバイダーがメトリクスを有効にすると、アプリは自動的に自動計測されたリソース・メトリクスのデータ・ポイントをイベント・テーブルに出力します。

詳細については、 アプリのログとトレースのレベルを設定する をご参照ください。

metric_level プロパティのサポートされている値については ロギング、メトリクス、トレースのレベル設定 をご参照ください。

grant_callback:

コンテナを持つアプリのコールバック関数のスキーマと名前を指定します。コールバック関数は、コンピューティングプールやサービスを作成し、アプリケーションに必要なその他のセットアップタスクを実行できるストアドプロシージャです。

コンテナ付きアプリでは、このフィールドは必要です。

詳細については、 grant_callback プロパティを使用してサービスを作成する をご参照ください。

例: grant_callback: my_schema.my_grant_callback

configuration の例

configuration:
  log_level: INFO
  trace_level: OFF
  metric_level: BASIC
  grant_callback: my_schema.my_grant_callback
Copy

privileges: フィールド

アプリがコンシューマーアカウントでリクエストする権限を含むブロックを定義します。

アプリがコンシューマーアカウントで権限をリクエストする場合、このフィールドは必須です。

<privilege_name>:

コンシューマーアカウントでアプリがリクエストする権限の名前を指定します。

privileges プロパティが指定されている場合、このフィールドは必須です。

description:

リクエストされている権限の説明を提供します。description で指定されたテキストは、 Python Permission SDK を使用しているか SHOW PRIVILEGES が起動している場合で Snowsight で権限が表示される場合に、コンシューマーに表示されます。

プロバイダーとして Snowflake Native App がこの権限を必要とする理由や、またその権限が必須かオプションかなどについて、可能な限り多くの情報を提供する必要があります。

フィールドが指定されている場合、 privileges フィールドは必須です。

privileges: の例

privileges:
- CREATE TABLE:
  description: 'Required to create tables in the consumer account.'
- CREATE COMPUTE POOL:
  description: 'Required to allow the app to create a compute pool in the consumer account.'
- BIND SERVICE ENDPOINT:
  description: 'Required to allow endpoints to be externally accessible.'
Copy

references: フィールド

コンシューマーアカウントでアプリがリクエストする参照を含むブロックを定義します。コンシューマーは、これらの参照をアカウント内のオブジェクトにバインドする必要があります。

コンシューマーアカウントでアプリが参照をリクエストする場合、このフィールドは必須です。

- <reference_name>:

コンシューマーアカウントでアプリがリクエストする参照の名前を指定します。

references プロパティが指定されている場合、このフィールドは必須です。

label:

コンシューマーに表示される参照のラベルを指定します。

references プロパティが指定されている場合、このフィールドは必須です。

例: label: "Orders table"

description:

リクエストされている参照の説明を提供します。description で指定されたテキストは、 Python Permission SDK を使用して Snowsight に参照が表示された場合、または SHOW REFERENCES コマンドが実行された場合に、コンシューマーに表示されます。

references プロパティが指定されている場合、このフィールドは必須です。

privileges:

コンシューマーアカウントで参照がバインドされているオブジェクトに対して、アプリが必要とする権限のリストを指定します。

references プロパティが指定されている場合、このフィールドは必須です。

例:

privileges:
  - SELECT
  - INSERT
Copy

object_type

スキーマやテーブル、または API 統合など、参照に関連付けられているオブジェクトのタイプを指定します。

フィールドが指定されている場合、 references フィールドは必須です。

例: object_type: TABLE

詳細については、 参照に含めることのできるオブジェクトの型および権限 をご参照ください。

multi_valued:

複数のオブジェクトを参照に関連付けることができます。複数のコンシューマー・オブジェクトを同じ参照にバインドするには、このプロパティを使用します。このプロパティが指定されている場合、1つの値参照を持つオブジェクトに対して同じ操作が実行されます。このプロパティは、多値参照を持つオブジェクトにも使用できます。

このフィールドはオプションです。デフォルト値は false です。

詳細については、 コンシューマーから参照およびオブジェクトレベル権限をリクエストする をご参照ください

例: multi_valued: true

register_callback

コンシューマーが自分のアカウントのオブジェクトへの参照をバインドするときに実行されるコールバック関数のスキーマと名前を指定します。

references プロパティが指定されている場合、このフィールドは必須です。

例: register_callback: my_schema.my_register_callback

configuration_callback

この参照にバインドするオブジェクトに必要な構成を提供するコールバック関数の名前を指定します。

このプロパティは、 object_typeEXTERNAL ACCESS INTEGRATION または SECRET の場合に必要です。このプロパティは、他のタイプのオブジェクトには適用されません。

required_at_setup

アプリのインストール時に参照をバインドする必要があることを示します。

例: required_at_setup: true

references の例

references:
- ORDERS_TABLE:
    label: "Orders table"
    description: "Orders table in TPC-H samples"
    privileges:
      - SELECT
    object_type: VIEW
    multi_valued: false
    register_callback: v1.register_single_callback

- EXTERNAL_ENDPOINT_EAI:
    label: "Allows egress to an external API"
    description: "EAI for Egress from NA+SPCS"
    privileges: [USAGE]
    object_type: EXTERNAL_ACCESS_INTEGRATION
    register_callback: v1.register_single_callback
    configuration_callback: v1.get_configuration
    required_at_setup: true
Copy

restricted_callers_rights: フィールド

制限された呼び出し元の権限に関連する構成プロパティを指定します。

アプリが呼び出し元の権限が制限された状態で実行されるストアドプロシージャまたは Snowpark Container Services サービスを作成する場合、このフィールドは必須です。

詳細については、 アプリの所有者権限と呼び出し元権限の使用 をご参照ください。

enabled:

呼び出し元の権限が制限された実行可能ファイルの作成をアプリに許可するかどうかを指定します。

アプリが制限された呼び出し元権限で実行されるストアドプロシージャまたは Snowpark Container Services サービスを作成する場合、プロバイダーはこのプロパティを true に設定する必要があります。

description:

アプリが呼び出し元権限が制限された実行可能ファイルを作成する必要がある理由の説明を提供します。

restricted_callers_rights: の例

restricted_callers_rights:
  enabled: true
  description: "Required to create stored procedures that run with restricted caller's rights."
Copy