CREATE LISTING¶
使用内联 YAML 清单创建免费列表,直接与特定使用者共享,或从位于暂存位置的文件中创建列表。
语法¶
CREATE EXTERNAL LISTING [ IF NOT EXISTS ] <name>
[ { SHARE <share_name> | APPLICATION PACKAGE <package_name> } ]
AS '<yaml_manifest_string>'
[ PUBLISH = { TRUE | FALSE } ]
[ REVIEW = { TRUE | FALSE } ]
[ COMMENT = '<string>' ]
CREATE EXTERNAL LISTING [ IF NOT EXISTS ] <name>
[ { SHARE <share_name> | APPLICATION PACKAGE <package_name> } ]
FROM '<yaml_manifest_stage_location>'
[ PUBLISH = { TRUE | FALSE } ]
[ REVIEW = { TRUE | FALSE } ]
参数¶
name指定列表标识符(名称)。它必须符合以下条件:
无论账户位于哪个 Snowflake 区域,在组织中都必须是唯一的。
必须以字母字符开头,不能包含空格或 除 下划线 (
_) 之外的特殊字符。
SHARE share_name指定要附加到列表的共享的标识符。
APPLICATION PACKAGE package_name指定附加到列表的应用程序包。
AS 'yaml_manifest_string'指定列表的 YAML 清单。有关清单参数,请参阅 列表清单引用。
清单通常用以美元为引号的字符串形式提供。有关更多信息,请参阅 以美元为引号的字符串常量。
FROM 'yaml_manifest_stage_location'指定内部暂存区或 Git 存储库克隆 manifest.yml 文件的路径。
PUBLISH = { TRUE | FALSE }指定应如何发布列表。
如果为 TRUE,列表会立即发布到 Marketplace Ops 以供审核。
默认:TRUE。
REVIEW = { TRUE | FALSE }指定列表是否应提交到 Marketplace Ops 进行审核。
默认:TRUE。
PUBLISH 和 REVIEW 属性的不同值组合会导致以下行为:
PUBLISH |
REVIEW |
行为 |
|---|---|---|
TRUE |
TRUE |
请求审核,在获得批准后立即发布。 |
TRUE |
FALSE |
导致错误。您不能未经审核便在 Snowflake Marketplace 上发布列表。 |
FALSE |
TRUE |
请求审核,但审核后不会自动发布。 |
FALSE |
FALSE |
不请求审核或发布,将列表另存为草稿。 |
COMMENT = 'string_literal'列表的注释。
默认:无值
访问控制要求¶
权限 |
对象 |
备注 |
|---|---|---|
CREATE LISTING |
账户 |
Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed. |
用于配置 Cross-Cloud Auto-Fulfillment 的委派权限。 |
如果 ALTER 命令正为自动履行而修改清单内容。 |
请参阅 列表的自动履行。 |
Operating on an object in a schema requires at least one privilege on the parent database and at least one privilege on the parent schema.
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
使用 CREATE LISTING ... 创建的列表会自动发布。有关取消发布和发布操作的信息,请参阅 ALTER LISTING。
示例¶
创建具有特定 YAML 格式清单的名为“MYLISTING”的列表,并提交以供审核和后续发布。
有关与使用 SQL 管理列表相关联的其他示例和用例,请参阅 以提供商身份通过 SQL 管理列表 – 示例。
备注
此示例使用 PUBLISH 和 REVIEW 的默认值。
CREATE EXTERNAL LISTING MYLISTING
SHARE MySHARE AS
$$
title: "MyListing"
subtitle: "Subtitle for MyListing"
description: "Description for MyListing"
listing_terms:
type: "STANDARD"
targets:
accounts: ["Org1.Account1"]
usage_examples:
- title: "this is a test sql"
description: "Simple example"
query: "select *"
$$
;
创建名为“MYLISTING”的列表草稿,其中包含特定的 YAML 格式清单:
CREATE EXTERNAL LISTING MYLISTING
SHARE MySHARE AS
$$
title: "MyListing"
subtitle: "Subtitle for MyListing"
description: "Description for MyListing"
listing_terms:
type: "OFFLINE"
targets:
regions: ["PUBLIC.AWS_US_EAST_1", "PUBLIC.AZURE_WESTUS2"]
usage_examples:
- title: "this is a test sql"
description: "Simple example"
query: "select *"
$$ PUBLISH=FALSE REVIEW=FALSE;
从特定的暂存位置创建名为“MYLISTING”的列表草稿。在以下示例中,manifest.yml 文件位于名为 listingstage 的暂存区的 listingmanifests 文件夹中。
CREATE EXTERNAL LISTING MYLISTING
SHARE MySHARE FROM @dbforstage.public.listingstage/listingmanifests;