使用版本渠道发布应用程序¶
本主题介绍如何使用发布通道管理和发布一个 Snowflake Native App 的多个版本。
关于发布通道¶
发布通道允许提供商在应用程序开发周期的不同阶段发布应用程序。例如,提供商可以使用发布通道来执行以下任务:
测试应用程序。
将应用程序发布给使用者,以用作预览版或用于 UAT(用户验收测试)。
将应用程序发布到生产环境。
提供商在应用程序包上启用发布通道。利用发布通道,提供商可以为一个应用程序创建两个以上的版本。两个版本的限制适用于每个发布通道,而非每个应用程序包。
支持的发布通道¶
Snowflake Native App Framework 支持以下发布通道。提供商使用的具体发布通道取决于当前处于应用程序开发周期的哪个阶段。
QA:分配到此发布通道的应用程序版本和补丁仅提供给提供商组织内的使用者。使用此发布通道发布的应用程序必须面向该组织内的特定账户。
供应商可使用此发布通道进行测试。使用 QA 发布通道发布的应用程序无需运行 自动安全扫描。
ALPHA:分配到此发布通道的应用程序版本和补丁可发布给提供商组织以外的使用者。将应用程序分配到此发布通道时,会执行自动安全扫描。
在进行安全扫描的同时,提供商可以为该版本设置发布指令,使用者可以将其安装到自己的账户中。但是,如果分配到此发布通道的版本未能通过安全扫描,则不能再使用。
在开发应用程序的过程中,供应商可以利用此通道与使用者开展协作。
DEFAULT:分配到此发布通道的应用程序版本和补丁可供所有能够访问该应用程序版本或补丁的使用者使用。分配到此发布通道的应用程序必须通过自动安全扫描。
此发布通道是生产发布通道。分配到此发布通道的所有应用程序都必须符合发布应用程序的安全要求和指南。有关更多信息,请参阅 Snowflake Native App 安全要求和准则。
使用发布通道所需的权限¶
要使用发布通道,必须使用已获授 MANAGE RELEASES 权限的角色。该权限允许您执行以下操作:
在应用程序包上启用发布通道。
启用 QA 和 ALPHA 发布通道。
注册和注销版本和补丁。
添加版本和补丁。
设置发布指令。
为应用程序包启用发布通道¶
要使用发布通道管理和发布应用程序,提供商必须使用应用程序包的 ENABLE_RELEASE_CHANNELS 子句启用发布通道,如以下命令所示:
CREATE APPLICATION PACKAGE my_app_package ENABLE_RELEASE_CHANNELS=TRUE;
ALTER APPLICATION PACKAGE my_app_package SET ENABLE_RELEASE_CHANNELS=TRUE;
警告
为应用程序包启用发布通道后,就不能再将其禁用。
启用 ALPHA 和 QA 发布通道¶
默认情况下,只有 DEFAULT 发布通道可供所有使用者使用,并允许其从自己可访问的列表中安装应用程序。
要使用 QA 和 ALPHA 发布通道,提供商必须在应用程序包中为特定账户明确启用这两个通道。对于这些通道,应用程序包会维护已添加到各通道的账户列表。
提供商可以使用 ALTER APPLICATION 命令中的 MODIFY RELEASE CHANNEL 子句,将账户添加到发布通道。
将 ORG1.ACCOUNT1 账户添加到 ALPHA 发布通道的方法如下:
ALTER APPLICATION PACKAGE my_app_package MODIFY RELEASE CHANNEL ALPHA ADD ACCOUNTS=(ORG1.ACCOUNT1);
从 ALPHA 发布通道移除 ORG1.ACCOUNT1 账户的方法如下:
ALTER APPLICATION PACKAGE my_app_package MODIFY RELEASE CHANNEL ALPHA REMOVE ACCOUNTS=(ORG1.ACCOUNT1);
要覆盖已添加到发布通道的当前账户列表,提供商可使用 ALTER APPLICATION PACKAGE 命令的 SET 子句,如下例所示:
ALTER APPLICATION PACKAGE my_app_package MODIFY RELEASE CHANNEL ALPHA SET ACCOUNTS=(ORG1.ACCOUNT2);
该命令会从 ALPHA 发布通道中移除所有当前账户,并添加 ORG1.ACCOUNT2 账户。
监控发布通道¶
查看应用程序包或列表中定义的发布通道¶
要查看应用程序包中定义的发布通道,请使用 SHOW RELEASE CHANNELS 命令,如下例所示:
SHOW RELEASE CHANNELS IN APPLICATION PACKAGE my_app_package;
要查看为列表定义的发布通道,请使用 SHOW RELEASE CHANNELS 命令,如下例所示:
SHOW RELEASE CHANNELS IN LISTING <listing_id>;
查看已安装应用程序的发布通道¶
要查看应用程序所有已安装实例的发布通道,请查看 SNOWFLAKE.DATA_SHARING_USAGE.APPLICATION_STATE 视图的 current_release_channel_name
列。
使用发布通道管理版本和补丁¶
提供商必须先将版本或补丁添加到特定发布通道,然后这些版本或补丁才能在发布通道内供发布指令使用。版本添加到发布通道后,该版本的后续补丁也会绑定到该发布通道中,以供使用。
备注
对于已启用发布通道的应用程序包,不支持 CREATE APPLICATION 和 ALTER APPLICATION PACKAGE 命令的 ADD VERSION USING ‘@stage/path’
子句。在创建版本之前,提供商必须向应用程序包注册和注销版本。
注册版本¶
在将应用程序的新版本添加到使用发布通道的应用程序包之前,提供商必须使用 ALTER APPLICATION PACKAGE 命令的 REGISTER 子句在发布通道中注册该版本:
ALTER APPLICATION PACKAGE my_app_package REGISTER VERSION V1 USING '@stage/path';
此命令将创建应用程序的 V1 版本,并创建补丁 0。此版本未分配到任何发布通道。应用程序包中最多允许有两个未分配版本(即未添加到任何发布通道)。
注销版本¶
要在已有两个版本的应用程序包中创建新版本,提供商必须注销一个旧版本。
要注销一个版本及其相关补丁,需要使用 ALTER APPLICATION PACKAGE 的 DEREGISTER 子句。以下命令显示了如何从应用程序包中注销 v1
版本:
ALTER APPLICATION PACKAGE my_app_package DEREGISTER VERSION v1;
备注
使用发布通道时,不必将现有版本从应用程序包中删除。
将版本添加到发布通道中¶
在应用程序包中注册应用程序的新版本后,必须明确将该版本添加到发布通道,以设置应用程序的发布指令。
要在发布通道中添加版本,请使用 ALTER APPLICATION PACKAGE 命令的 ADD VERSION 子句:
ALTER APPLICATION PACKAGE my_app_package MODIFY RELEASE CHANNEL QA ADD VERSION V1;
备注
一个发布通道只能同时包含两个版本。
从发布通道中移除版本¶
要从发布通道中移除某个版本,请使用 ALTER APPLICATION PACKAGE 的 DROP 子句:
ALTER APPLICATION PACKAGE my_app_package MODIFY RELEASE CHANNEL QA DROP VERSION V1;
从发布通道删除一个版本的操作为异步操作,只有在所有用户都从该版本升级后才能真正删除。
使用发布通道设置发布指令¶
在为应用程序包启用发布通道时,每个通道都有自己的发布指令。
为发布通道设置默认发布指令:
ALTER APPLICATION PACKAGE my_app_package
MODIFY RELEASE CHANNEL ALPHA
SET DEFAULT RELEASE DIRECTIVE VERSION=v1 PATCH=10;
为发布通道设置自定义发布指令:
ALTER APPLICATION PACKAGE my_app_package
MODIFY RELEASE CHANNEL ALPHA
SET RELEASE DIRECTIVE my_custom_release_directive
VERSION=V1 PATCH=11 ACCOUNTS=(ORG1.ACCOUNT1);
使用发布通道启用多个实例¶
您可以允许使用者在其账户中创建多个应用程序实例。提供商还可以在其测试账户中创建多个应用程序实例。
要启用多个实例,请使用应用程序包的 MULTIPLE_INSTANCES 属性,如以下命令所示:
CREATE APPLICATION PACKAGE <name> MULTIPLE_INSTANCES=TRUE;
ALTER APPLICATION PACKAGE <name> SET MULTIPLE_INSTANCES=TRUE;
备注
为应用程序包启用多个实例适用于应用程序包内的所有发布通道。
获利和发布通道¶
使用 DEFAULT 发布通道安装的所有应用程序实例都使用为列表配置的定价计划。
从 ALPHA 和 QA 发布通道安装的应用程序实例均为免费,不使用为列表配置的定价计划。
使用发布通道安装应用程序¶
提供商可以使用 CREATE APPLICATION,从测试环境中的发布通道创建应用程序。
备注
要从 QA 或 ALPHA 发布通道安装应用程序,必须使用已获授 CREATE PREVIEW APPLICATION 权限的角色。
要在同一账户中安装应用程序包内的应用程序,请运行以下命令:
CREATE APPLICATION my_app
FROM APPLICATION PACKAGE my_app_package
USING RELEASE CHANNEL QA;
如果没有明确使用 USING RELEASE CHANNEL
子句,则使用 DEFAULT 发布通道。
要通过列表在另一个账户中安装应用程序,请运行以下命令:
CREATE APPLICATION my_app
FROM LISTING
USING RELEASE CHANNEL QA;
如果没有明确使用 USING RELEASE CHANNEL
子句,则使用 DEFAULT 发布通道。