设置 Snowflake CLI 来开发应用程序

本主题介绍提供商如何安装并使用 Snowflake CLI 以开发和管理 Snowflake Native Apps。Snowflake CLI 是一款开源命令行工具,除 SQL 操作外,还专门为开发人员核心工作负载设计。

安装并配置 Snowflake CLI

要安装并配置 Snowflake CLI,请执行以下步骤:

  1. 安装适用于您操作系统的 Snowflake CLI。

    有关更多信息,请参阅 安装 Snowflake CLI

  2. 设置与 Snowflake 账户的连接。

    有关更多信息,请参阅 配置 Snowflake CLI

关于 Snowflake CLI 项目和应用程序模板

在使用 Snowflake CLI 开发您的 Snowflake Native App 时,您是在项目内进行工作。项目是一个目录,其中包含 Snowflake Native App 所需的所有文件和目录。与其他代码存储库一样,这些文件可以使用 Git 等技术进行版本控制,并在 Github 等平台上共享。

Snowflake 提供可用于设置项目的应用程序模板。这些模板可在 snowflake-cli-templates GitHub 存储库 (https://github.com/snowflakedb/snowflake-cli-templates) 中找到。

可用的模板包括:

模板

Description

app_basic

基本模板,包含应用程序所需的基本文件和目录。

app_streamlit_java

该模板包含应用程序、Java 扩展代码和示例 Streamlit 应用程序所需的基本文件和目录。

app_streamlit_js

该模板包含应用程序、JavaScript 扩展代码和示例 Streamlit 应用程序所需的基本文件和目录。

app_streamlit_python

该模板包含应用程序、Python 扩展代码和示例 Streamlit 应用程序所需的基本文件和目录。

为 Snowflake Native App 设置新项目

为 Snowflake Native App 设置新项目,请执行以下步骤:

  1. 运行 init 命令创建新项目:

    snow init --template <template_name> <project_name>
    
    Copy
  2. 输入项目标识符的值。

    此值用作 Snowflake CLI 创建的应用程序组件的基本名称,包括应用程序包。您可以稍后在项目定义文件中修改或替换此值。

运行此命令后,系统将在运行命令的目录中创建一个名为 <project_name> 的新目录。此目录包含 Snowflake Native App 所需的文件和目录,具有以下目录结构:

<project_name>/
├── app/
 ├── manifest.yml
 ├── README.md
 ├── setup_script.sql
├── README.md
├── snowflake.yml
Copy

下表描述了此目录中的文件夹和文件:

文件/目录

Description

app/

此目录包含应用程序的应用程序代码和资源。您可以根据需要在此目录中修改或添加文件。

app/manifest.yml

此文件用于定义应用程序的元数据和配置,包括应用程序名称、版本、描述和资源。有关更多信息,请参阅 为应用程序创建清单文件

app/README.md

此文件用于提供应用程序的概述及其使用说明。这是 Snowflake Marketplace 中显示的 README 文件

app/setup_script.sql

此 SQL 脚本可在安装应用程序时执行。您可以修改此脚本以包含应用程序所需的任何设置步骤。有关更多信息,请参阅 Create the setup script

README.md

此文件提供了项目概述及其搭配您的应用程序使用的 Snowflake CLI 使用说明。

snowflake.yml

这是项目定义文件,描述了可部署到 Snowflake 的对象。您必须修改此文件以定义应用程序包含的资源。

创建项目定义文件

Snowflake CLI 使用项目定义文件来描述可部署到 Snowflake 的对象。此文件必须命名为 snowflake.yml。此文件用于确定应用程序包的名称,并指定 Snowflake Native App 包含的资源。

有关项目定义文件的更多信息,请参阅 项目定义文件

以下是一个用于 Snowflake Native App 的简单示例 snowflake.yml 文件:

definition_version: 2
entities:
  hello_snowflake_package:
    type: application package
    stage: stage_content.hello_snowflake_stage
    manifest: app/manifest.yml
    identifier: hello_snowflake_package
    artifacts:
       - src: app/*
         dest: ./
  hello_snowflake_app:
    type: application
    from:
       target: hello_snowflake_package
    debug: false
Copy

下表描述了此示例中的字段:

字段

Description

definition_version

项目定义文件格式的版本。当前版本为 2。

entities

项目包含的实体列表。每个实体都有唯一的标识符和类型。

hello_snowflake_package

应用程序包的标识符。此名称用作 Snowflake CLI 创建的应用程序组件的基本名称,包括应用程序包。

type

实体的类型。在这种情况下,它是 application package

stage

存储应用程序包的暂存区。

manifest

定义应用程序元数据和配置的清单文件的路径。

identifier

应用程序包的标识符。此名称用作 Snowflake CLI 创建的应用程序组件的基本名称,包括应用程序包。

artifacts

应用程序包中包含的文件和目录的列表。每个工件都有一个源 (src) 和目标 (dest)。

hello_snowflake_app

应用程序实体的标识符。

from

指定应用程序的源。在这种情况下,它是从 hello_snowflake_package 应用程序包创建的。

debug

布尔值,指示是否为应用程序启用调试模式。

开发您的 Snowflake Native App

设置项目并创建项目定义文件后,您可以通过创建应用程序包并修改清单文件和安装脚本,开始开发 Snowflake Native App。

有关详细信息,请参阅以下主题:

语言: 中文