创建和安装应用程序

先决条件

  • 您的 config.toml 文件中必须存在现有连接。

  • 您的本机应用程序项目中必须存在 snowflake.yml 文件。

如何同时创建应用程序包和应用程序对象

借助 snow app run 命令,您可以将所有不同的代码文件汇集在一起,创建应用程序包,将代码上传到此应用程序包中的 Snowflake 暂存区,验证安装脚本 SQL,还可以使用此应用程序包安装或升级同一账户中的应用程序。此命令由解析的项目定义中指定的值驱动,这些值用于确定要将文件上传到哪个暂存区、上传哪些文件以及要创建的对象的名称。

要创建应用程序对象,请执行以下操作:

  1. 如有必要,创建连接

  2. 对代码文件进行相关更改,包括 snowflake.ymlmanifest.yml、任何设置脚本和扩展代码文件。

  3. 从项目内部执行 snow app run 命令,如下所示:

    snow app run --connection="dev"
    
    Copy

成功时,该命令将显示类似以下内容的消息:

Your application ("my_app_admin") is now live:
https://app.snowflake.cn/data_org/data_acct/#/apps/application/my_app_admin

使用 snow app run --connection="dev" 命令可使用命名暂存区上的文件创建应用程序,该命名暂存区由 Snowflake CLI 自动管理。即使应用程序包已存在,您也可以使用该命令创建或更新应用程序。在这种情况下,该命令会在应用程序对象上发出 UPGRADE,这将执行安装脚本。有关如何避免重新运行安装脚本的信息,请参阅下一节。

要使用现有应用程序包的版本(和补丁)创建应用程序,请执行以下操作:

snow app run --version v1 --patch 12 --connection="dev"
Copy

在此处,版本 V1 和补丁 12 仅用作示例。有关创建 Snowflake Native App 对象的更多信息,请参阅 snow app run 命令。

如何创建应用程序包

snow app deploy 命令执行将代码部署到 Snowflake 所需步骤 snow app run 的子集。虽然 snow app deploy 命令仍会汇集所有不同的代码文件,创建应用程序包,将代码上传到该应用程序包中的指定暂存区并 验证安装脚本 SQL,但它不会尝试创建或升级应用程序对象。

在以下情况下,snow app deploy 命令特别有用:

  • 仅部署应用程序包和暂存区文件,适用于不需要应用程序对象的情况(例如持续交付管道的一部分)。

  • 更新链接到应用程序对象的暂存区文件。例如,如果只更改了 Python 代码文件,则在使用暂存区开发模式时,您无需重新创建指向它的 PROCEDURE、FUNCTION 和 STREAMLIT 对象。这种方法节省了时间并降低了成本,因为您不需要使用仓库来重新执行安装脚本以使用更新的 Python 代码。

要创建没有相应应用程序对象的应用程序包,请执行以下操作:

  1. 如有必要,创建连接

  2. 对代码文件进行相关更改,包括 snowflake.ymlmanifest.yml、任何设置脚本和扩展代码文件。

  3. 从项目内部执行 snow app deploy 命令,如下所示:

    snow app deploy --connection="dev"
    
    Copy

成功时,该命令将显示类似以下内容的消息:

Checking if stage exists, or creating a new one if none exists.
Performing a diff between the Snowflake stage and your local deploy_root
...
Deployed successfully. Application package and stage are up-to-date.

您还可以使用 snow app deploy 命令,通过在 snow app deploy 命令后将路径作为位置实参列出,来限制它将哪些文件添加到某个暂存区。有关此功能和其他高级功能的详细信息,请参阅 snow app deploy 命令。

语言: 中文