为带有容器的应用程序创建清单文件¶
本主题介绍了 Snowflake Native Apps with Snowpark Container Services 中 manifest.yml
文件的组件。有关 manifest.yml
文件的一般信息,请参阅 为应用程序包创建清单文件。
指定应用程序所使用的容器映像¶
若要指定带有容器的应用程序使用的容器映像的位置,请将 images
属性添加到 artifacts.container_services
块中。
必须为每个映像包含一个条目。指定路径包含数据库、架构和映像存储库的名称。该路径的形式如下:
/<database>/<schema>/<image_repository>/<image_name>:tag
下面的示例演示如何指定 images
属性:
artifacts
...
container_services
...
images
- /dev_db/dev_schema/dev_repo/image1
- /dev_db/dev_schema/dev_repo/image2
指定应用程序的用户界面端点¶
若要使用容器为应用程序的用户界面指定端点,请将 default_web_endpoint
属性添加到 artifacts
块中。
default_web_endpoint
属性是可选的。如果指定了此属性,则还必须在服务规范文件中定义端点。
备注
只能指定 default_web_endpoint
和 default_streamlit
之一。
清单文件中的这个条目具有两个附加属性:
service
指定用户界面的服务名称。
endpoint
指定端点的名称。
下面的示例演示如何指定 default_web_endpoint
属性。
default_web_endpoint:
service: ux_schema.ux_service
endpoint: ui
指定应用程序所需权限。¶
与其他应用一样,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.'
具有容器的应用程序的清单文件示例¶
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: "...”