使用模板引导项目¶
为了让您更容易实例化项目,Snowflake CLI 会实施项目模板化。您可以 创建自己的项目模板 或使用 Snowflake 在 Snowflake CLI 模板 (https://github.com/snowflakedb/snowflake-cli-templates/) 公共 Git 存储库中提供的示例。
snow init 命令会创建项目目录,并根据指定模板填充文件结构。
如果未提供
--no-interactive选项,则命令会为每个未通过-D``(或 ``--variable)选项指定值的模板 (template.yml) 变量提示用户输入。如果您提供
--no-interactive选项,则命令将使用变量的默认值(由模板定义)。如果模板没有定义变量的默认值,并且您没有使用-D选项进行提供,则命令将退出并显示错误。
snow init 命令使用以下语法:
其中:
PATH是一个新目录,命令在其中对项目进行初始化。如果您指定一个现有目录,则命令将退出并显示错误。[--template-source SOURCE]是以下其中一项:模板目录的本地文件路径。
指向目录的有效 Git URL,包含项目模板。如果未指定,命令默认为 Snowflake CLI 模板 (https://github.com/snowflakedb/snowflake-cli-templates/) Git 存储库。
[--template NAME]指定要用作模板的SOURCE子目录(对于远程源非常有用)。如果未提供,则将SOURCE视为单个模板。[-D key1=value1 -D key2=value2...]是一个包含一个或多个名称值对的列表,为模板中定义的变量提供值(在template.yml中)。该命令不会提示您提供此选项的变量。[--no-interactive]会禁用用户输入的提示。如果您使用此选项,则必须提供[-D key1=value1 -D key2=value2...]选项的所有必需值;否则,命令将以错误退出。
有关更多信息,请参阅 snow init 命令参考。
示例¶
使用默认仓库的
example_snowpark模板对项目进行初始化:该命令会提示输入(默认值显示在方括号中):
使用本地模板对项目进行初始化。
在此示例中,
query_warehouse和stage变量是通过-D选项指定的,因此命令只提示以下内容:
创建自定义模板¶
模板布局¶
项目模板需要 template.yml 文件,其中包含数据,并解释 snow init 命令应该如何呈现模板。如果文件未在模板的根目录中呈现,则 snow init 会以错误结束。有关更多信息,请参阅 template.yml 语法。
模板语法¶
模板变量和表达式应放在 <! ... !> 内。Snowflake CLI 还支持基本的 jinja2 表达式和筛选器,例如:
Snowflake CLI 项目模板还支持以下保留变量和筛选器:
project_dir_name变量,自动解析为已创建项目的根目录。例如,假设您的
snowflake.yml文件包含以下内容:如果您随后执行以下命令,以使用自定义模板对项目进行初始化:
snow init命令将snowflake.yml文件渲染如下:to_snowflake_identifier筛选器,可将用户提供的字符串格式化为格式正确的 Snowflake 标识符。Snowflake 强烈建议在变量引用 Snowflake 对象时使用此筛选器。
例如,假设您的
snowflake.yml文件包含以下内容:如果您随后执行以下命令,以使用自定义模板对项目进行初始化:
snow init命令将snowflake.yml文件渲染如下:如果字符串无法转换为有效的 Snowlake 标识符,则
snow init命令将退出并显示错误,如下所示:
关于 template.yml 项目模板文件¶
template.yml 项目模板文件会存储渲染项目所需的所有数据。例如:
以下表列出了 template.yml 项目模板文件中的属性。
属性 |
定义 |
|---|---|
可选,*字符串型*(默认值:None) |
最低 Snowflake CLI 版本。如果指定, |
可选,*字符串列表*(默认值: |
由 备注 未包含在此列表中的模板文件将被添加到新项目中,但其内容保持不变。 |
可选,*变量列表*(默认值: |
模板变量列表。它支持自定义提示,可为可选变量提供默认值和基本类型检查。请参阅下面的 变量属性参数 表以获取更多详细信息。变量值应根据此列表的顺序确定。 如果您从此列表中省略了 |
以下表列出了变量属性的参数。
属性 |
定义 |
|---|---|
required、string |
变量的名称。它可用于模板文件,例如 |
optional、string |
提示用户获取值。如果您不设置此参数,则命令会显示参数的名称作为提示文本。 如果您将提示定义如下:
|
optional、string/int/float |
Default value of the variable. If not provided, the variable is treated as required, so a user needs to provide the value after a prompt or by specifying it with the 以下示例定义了两个具有默认值的变量: 当执行时, 在此示例中,命令使用默认值 ( |
optional、string |
变量的数据类型。有效值包括: 以下示例将变量定义为 当执行时,如果用户输入错误数据类型的值,snow init 命令将显示以下错误: |