为带有容器的应用程序创建清单文件

本主题介绍了 Snowflake Native Apps with Snowpark Container Services 中 manifest.yml 文件的组件。有关 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_endpointdefault_streamlit 之一。

清单文件中的这个条目具有两个附加属性:

  • 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
语言: 中文