コンテナでアプリのマニフェストファイルを作成する

このトピックでは、 manifest.yml 内の Snowflake Native Apps with Snowpark Container Services ファイルのコンポーネントについて説明します。 manifest.yml ファイルに関する一般的な情報については、 アプリケーションパッケージのマニフェストファイルを作成する をご参照ください。

アプリが使用するコンテナイメージを指定する

コンテナを使用したアプリで使用されるコンテナイメージの場所を指定するには、 images ブロックに artifacts.container_services プロパティを追加します。

イメージごとにエントリを含める必要があります。指定されたパスには、データベース、スキーマ、およびイメージリポジトリの名前が含まれます。このパスの形式は次のとおりです。

/<database>/<schema>/<image_repository>/<image_name>:tag
Copy

次の例は、 images プロパティを指定する方法を示しています。

artifacts
...
  container_services
    ...
    images
      - /dev_db/dev_schema/dev_repo/image1
      - /dev_db/dev_schema/dev_repo/image2
Copy

アプリのユーザーインターフェイスエンドポイントを指定する

コンテナを使用したアプリのユーザーインターフェイスのエンドポイントを指定するには、 default_web_endpoint プロパティを artifacts ブロックに追加します。

default_web_endpoint パラメーターはオプションです。このプロパティを指定する場合、エンドポイントもサービス仕様ファイルで定義する必要があります。

注釈

default_web_endpoint および default_streamlit のどちらか一方のみを指定できます。

マニフェストファイル内のこのエントリには、次の2つの追加プロパティがあります。

  • service

    ユーザーインターフェイスのサービスの名前を指定します。

  • endpoint

    エンドポイントの名前を指定します。

次の例は、 default_web_endpoint プロパティを指定する方法を示しています。

default_web_endpoint:
  service: ux_schema.ux_service
  endpoint: ui
Copy

アプリに必要な権限を指定する

他のアプリと同様に、 manifest.yml ファイルの references プロパティは、アプリがコンシューマーに要求する参照を指定します。次の権限は、コンテナを使用したアプリに固有のものです。

  • CREATE COMPUTE POOL

    この権限は、アプリがコンシューマーアカウントにコンピューティングプールを作成できるようにするために必要です。コンシューマーがコンピューティングプールを手動で作成する場合は必要ありません。

  • BIND SERVICE ENDPOINT

    この権限は、Snowflakeの外部からエンドポイントにアクセスできるようにする場合に必要です。

次の例は、これらの権限を privileges ブロックに追加する方法を示しています。

privileges:
- 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

コンテナを使用したアプリのマニフェストファイルの例

Snowflake Native App Framework は、コンテナを使用したアプリに固有のマニフェストファイル内のエントリをサポートします。次の例 manifest.yml は、コンテナを使用したアプリの一般的なマニフェストファイルを示しています。

manifest_version: 1

version:
  name: v1

artifacts:
  readme: readme.md
  setup_script: setup.sql
  container_services:
    images
      - /dev_db/dev_schema/dev_repo/image1
      - /dev_db/dev_schema/dev_repo/image2

  default_web_endpoint:
    service: ux_schema.ux_service
    endpoint: ui

privileges:
 - CREATE COMPUTE POOL
   description: "...”
 - BIND SERVICE ENDPOINT
   description: "...”
Copy