为应用程序设置发布指令¶
本主题介绍如何为应用程序包设置发布指令。
关于发布指令¶
发布指令确定使用者在安装或升级应用程序时可用的应用程序版本。使用 ALTER APPLICATION PACKAGE 命令在应用程序包中定义发布指令。
有两种类型的发布指令:
- 自定义发布指令
允许提供商指定特定 Snowflake 账户可以安装的应用程序版本。有关更多信息,请参阅 添加自定义发布指令。
- 默认发布指令
指定安装 Snowflake Native App 时适用于所有使用者的版本和补丁。如果提供商创建应用程序 V1 和 V2 版本,则将默认发布指令设置为 V2 可确保使用者在安装 Snowflake Native App 时安装 V2 版本。
有关更多信息,请参阅 设置默认发布指令。
如果提供商创建应用程序的 V2 和 V3 版本,则可以将 V2 指定为默认版本,并创建自定义发布指令,以便仅与特定账户共享 V3。在发布应用程序 V3 版本之前,提供商还可以与测试账户共享该版本。
备注
如果同时指定默认发布指令和自定义发布指令,则自定义发布指令始终优先。在上面的示例中,自定义发布指令中指定的使用者账户只能安装应用程序的 V3 版本。
必须先在应用程序包中定义发布指令,然后才能执行以下任务:
创建一个将应用程序包作为数据内容的公共列表。
在使用者账户中安装 Snowflake Native App。
设置发布指令所需的权限¶
要设置发布指令,提供商必须具有应用程序包的 MANAGE RELEASES 权限或所有权。
GRANT MANAGE RELEASES ON APPLICATION PACKAGE hello_snowflake_package
TO ROLE release_mgr;
设置默认发布指令¶
将 ALTER APPLICATION PACKAGE 命令与 SET DEFAULT RELEASE DIRECTIVE 结合使用,以设置默认发布指令,如以下示例所示:
ALTER APPLICATION PACKAGE hello_snowflake_package
SET DEFAULT RELEASE DIRECTIVE
VERSION = v1_0
PATCH = 2;
要更新应用程序包的默认发布指令,请再次运行带有 SET DEFAULT RELEASE DIRECTIVE 的 ALTER APPLICATION PACKAGE 命令,并根据需要指定 VERSION 或 PATCH 的新值。
设置和更新自定义发布指令¶
设置自定义发布指令¶
要添加自定义发布指令,请将 ALTER APPLICATION PACKAGE 命令与 SET RELEASE DIRECTIVE 结合使用。使用 ACCOUNTS 子句指定适用此发布指令的账户。例如:
ALTER APPLICATION PACKAGE hello_snowflake_package
SET RELEASE DIRECTIVE hello_snowflake_package_custom
ACCOUNTS = (CONSUMER_ORG.CONSUMER_ACCOUNT)
VERSION = v1_0
PATCH = 0;
更新自定义发布指令¶
要更新自定义发布指令的版本或补丁,请使用带有 MODIFY RELEASE DIRECTIVE 的 ALTER APPLICATION PACKAGE 命令,如以下示例所示:
ALTER APPLICATION PACKAGE hello_snowflake_package
MODIFY RELEASE DIRECTIVE hello_snowflake_package_custom
VERSION = v1_0
PATCH = 0;
但是,您不能修改与发布指令关联的账户。要更改与发布指令关联的组织和账户,请执行以下操作:
通过运行带有 UNSET RELEASE DIRECTIVE 的 ALTER APPLICATION PACKAGE 命令,从应用程序包中移除发布指令。
通过运行带有 SET RELEASE DIRECTIVE 的 ALTER APPLICATION PACKAGE 命令以及使用 ACCOUNTS 子句指定账户列表,将发布指令添加回应用程序包。
备注
更改与发布指令关联的组织和账户时,请在移除旧发布指令后立即添加新发布指令。如果未执行此操作,分配给自定义发布指令的账户的已安装应用程序将恢复为默认发布指令。
移除自定义发布指令¶
要从应用程序包中移除自定义发布指令,请将 ALTER APPLICATION PACKAGE 命令与 UNSET RELEASE DIRECTIVE 结合使用,如以下示例所示:
ALTER APPLICATION PACKAGE hello_snowflake_package
UNSET RELEASE DIRECTIVE hello_snowflake_package_custom;
基于发布指令测试应用程序¶
在开发模式下从应用程序包安装应用程序时,会明确指定版本和补丁。但是,当使用以下命令安装应用程序时:
CREATE APPLICATION hello_snowflake
FROM APPLICATION PACKAGE hello_snowflake_package
发布指令确定运行此命令时安装的版本。
查看应用程序包的发布指令¶
要使用 SQL 查看发布指令,请运行 SHOW RELEASE DIRECTIVES 命令,如下例所示:
SHOW RELEASE DIRECTIVES IN APPLICATION PACKAGE hello_snowflake_package;