snow snowpark build

构建 Snowpark 项目所需的工件。这些工件可以被 deploy 命令使用。在工件中的每个目录中都会创建一个 .zip 文件。所有非 Anaconda 依赖关系都会打包在 dependencies.zip 文件中。

语法

snow snowpark build
  --ignore-anaconda
  --allow-shared-libraries
  --index-url <index_url>
  --skip-version-check
  --project <project_definition>
  --env <env_overrides>
  --connection <connection>
  --host <host>
  --port <port>
  --account <account>
  --user <user>
  --password <password>
  --authenticator <authenticator>
  --private-key-file <private_key_file>
  --token-file-path <token_file_path>
  --database <database>
  --schema <schema>
  --role <role>
  --warehouse <warehouse>
  --temporary-connection
  --mfa-passcode <mfa_passcode>
  --enable-diag
  --diag-log-path <diag_log_path>
  --diag-allowlist-path <diag_allowlist_path>
  --format <format>
  --verbose
  --debug
  --silent
Copy

实参

选项

--ignore-anaconda

不在 Snowflake Anaconda 通道上查找包。默认值:False。

--allow-shared-libraries

当使用通过 PIP 安装的包时,允许使用共享 (.so) 库。默认值:False。

--index-url TEXT

用于查找包的 Python 包索引的基础 URL。它应指向一个符合 PEP 503 的存储库(简单存储库 API)或以相同格式布局的本地目录。

--skip-version-check

跳过比较需求和 Anaconda 之间的依赖项版本。默认值:False。

-p, --project TEXT

Snowflake 项目所在的路径。默认为当前工作目录。

--env TEXT

key=value 格式的字符串。覆盖用于模板的 env 部分的变量。默认值:[]。

--connection, -c, --environment TEXT

连接名称,如您在 config.toml 文件中所定义。默认值:default

--host TEXT

连接的主机地址。替换为连接指定的值。

--port INTEGER

连接的端口。替换为连接指定的值。

--account, --accountname TEXT

分配给 Snowflake 账户的名称。替换为连接指定的值。

--user, --username TEXT

连接到 Snowflake 的用户名。替换为连接指定的值。

--password TEXT

Snowflake 密码。替换为连接指定的值。

--authenticator TEXT

Snowflake 身份验证器。替换为连接指定的值。

--private-key-file, --private-key-path TEXT

Snowflake 私钥文件路径。替换为连接指定的值。

--token-file-path TEXT

连接到 Snowflake 时应使用的带有 OAuth 令牌的文件路径。

--database, --dbname TEXT

要使用的数据库。替换为连接指定的值。

--schema, --schemaname TEXT

要使用的数据库架构。替换为连接指定的值。

--role, --rolename TEXT

要使用的角色。替换为连接指定的值。

--warehouse TEXT

要使用的仓库。替换为连接指定的值。

--temporary-connection, -x

使用用命令行参数定义的连接,而不是在配置中定义的连接。默认值:False。

--mfa-passcode TEXT

用于多重身份验证的令牌 (MFA)。

--enable-diag

运行 Python 连接器诊断测试。默认值:False。

--diag-log-path TEXT

诊断报告路径。默认:<temporary_directory>。

--diag-allowlist-path TEXT

可选允许列表的诊断报告路径。

--format [TABLE|JSON]

指定输出格式。默认:TABLE。

--verbose, -v

显示日志级别 info 及更高级别的日志条目。默认值:False。

--debug

显示日志级别 debug 及更高级别的日志条目;调试日志包含其他信息。默认值:False。

--silent

关闭到控制台的中间输出。默认值:False。

--help

显示此命令的帮助文本。

使用说明

  • app.zip 包含运行项目中的函数和过程所需的一切,除了通过 ` Snowflake Anaconda 通道 <https://repo.anaconda.com/pkgs/snowflake/ (https://repo.anaconda.com/pkgs/snowflake/)>`_ 提供的包之外,您可以直接从 Snowflake 调用这些包。

  • 命令解析 requirements.txt,以查找 Conda 通道上提供的包。这个过程会创建包含 Conda 通道上可用项目依赖项的 requirements.snowflake.txt 文件,该文件稍后会被 snow snowpark deploy 命令使用。

  • 默认情况下,该命令在当前目录下查找 snowflake.yml 文件。或者,也可以使用 --project 选项指定不同的路径。

  • 该命令会自动下载依赖项,并将其与项目源代码(由 snowflake.yml 文件中的 src 字段指定)一起添加到名为 app.zip 的文件中。

  • 要使用与 PyPi 不同的 Python 包索引,请使用 --index-url 选项指定一个索引。

  • 您可以使用 --skip-version-check 选项跳过项目依赖项和 Anaconda 通道之间的版本要求。

  • 您可以使用 --ignore-anaconda 选项在 app.zip 文件中包含所有需要的依赖项,甚至包括那些在 Snowflake Anaconda 通道中可用的依赖项。依赖项不是从 Anaconda 下载的,而是从 PyPi 下载的。

  • --allow-shared-libraries 选项会检查从 PyPi 下载的包是否使用了原生依赖项,这可能会导致问题,因为 Snowpark 目前只支持从 Conda 通道获取的包的原生依赖项。

示例

  • 在当前目录中构建项目:

    snow snowpark build
    
    Copy
    Resolving dependencies from requirements.txt
      No external dependencies.
    Preparing artifacts for source code
      Creating: app.zip
    Build done.
    
  • 在其他目录中构建项目:

    ls
    
    Copy
    project_dir    some_other_dir    some_file.txt
    
    snow snowpark build -p project_dir
    
    Copy
    Resolving dependencies from requirements.txt
      No external dependencies.
    Preparing artifacts for source code
      Creating: app.zip
    Build done.
    
  • 在没有 snowflake.yml 项目定义的目录中构建项目:

    ls
    
    Copy
    project_dir    some_other_dir    some_file.txt
    
    snow snowpark build
    
    Copy
    ╭─ Error ──────────────────────────────────────────────────────────╮
      Cannot find project definition (snowflake.yml). Please provide
      a path to the project or run this command in a valid
      project directory.
    ╰──────────────────────────────────────────────────────────────────╯
    
  • 使用原生库构建项目

    snow snowpark build --ignore-anaconda --allow-shared-libraries
    
    Copy
    2024-04-16 16:05:52 ERROR Following dependencies utilise shared libraries, not supported by Conda:
    2024-04-16 16:05:52 ERROR contourpy
    pillow
    numpy
    kiwisolver
    fonttools
    matplotlib
    2024-04-16 16:05:52 ERROR You may still try to create your package with --allow-shared-libraries, but the might not work.
    2024-04-16 16:05:52 ERROR You may also request adding the package to Snowflake Conda channel
    2024-04-16 16:05:52 ERROR at https://support.anaconda.com/
    Build done. Artifact path: /Path/to/current/dir/project_dir/app.zip
    
  • 构建项目并包含所有依赖项:

    snow snowpark build --ignore-anaconda
    
    Copy
    Resolving dependencies from requirements.txt
      No external dependencies.
    Preparing artifacts for source code
      Creating: app.zip
    Build done.
    
语言: 中文