创建 Snowpark 项目定义

snowflake.yml 文件包含 Snowpark 项目的函数和存储过程声明。

备注

目前,Snowpark 项目定义文件必须命名为 snowflake.yml

下面的代码段显示了 Snowpark 项目定义文件的示例:包含两个函数和两个存储过程。hello_function 功能使用 Snowpark 的外部功能。

definition_version: '2'

mixins:
  snowpark_shared:
    artifacts:
      - dest: my_snowpark_project
        src: app/
    stage: dev_deployment

entities:

  hello_function:
    type: function
    identifier:
      name: hello_function
    handler: functions.hello_function
    signature:
      - name: name
        type: string
    returns: string
    external_access_integrations:
      - my_external_access
    secrets:
        cred: my_cred_name
    meta:
      use_mixins:
        - snowpark_shared

  hello_procedure:
    type: procedure
    identifier:
      name: hello_procedure
    handler: procedures.hello_procedure
    signature:
      - name: name
        type: string
    returns: string
    meta:
      use_mixins:
        - snowpark_shared

  test_procedure:
    type: procedure
    identifier:
      name: test_procedure
    handler: procedures.test_procedure
    signature: ''
    returns: string
    meta:
      use_mixins:
        - snowpark_shared
Copy

小心

执行其他 snow snowpark 命令时,项目目录中的文件会被 Snowflake CLI Snowflake 处理,并且可以上传到 Snowflake。在将任何敏感信息放入项目目录中的文件中时应小心谨慎。

函数和存储过程对象属性

下表描述了函数和存储过程使用的属性。

函数和存储过程对象属性

属性

定义

identifier

可选字符串型

实体的可选 Snowflake 标识符。该值可以采用以下形式:

  • 字符串标识符文本

    identifer: my-snowpark-id
    
    Copy

    支持不带引号和带引号的标识符。要使用带引号的标识符,请在 YAML 值中包含周围的引号(例如 ’”My Snowpark Function”’)。

  • 对象

    identifer:
      name: my-snowpark-id
      schema: my-schema # optional
      database: my-db # optional
    
    Copy

    备注

    如果指定 schemadatabase,并在 name 属性中使用完全限定名称(例如 mydb.schema1.my-app),则会发生错误。

type

可选字符串型

必须是以下之一:functionprocedure

artifacts

requiredstring sequence

所需资源的列表。

handler

必填字符串型

snowpark.src 中定义的模块内部对象的函数或存储过程的实施。例如,functions.hello_function 会引用文件 <src>/functions.py 中的函数 hello_function

returns

必填字符串型

结果的 SQL 类型。检查 可用类型 列表。

signature

requiredsequence

signature 参数描述传递给对象的连续实参。每个实参都应指定其名称和类型,例如:

signature:
  - name: "first_argument"
    type: int
  - name: "second_argument"
    default: "default value"
    type: string
Copy

如果函数或存储过程不取实参,请将此值设置为空字符串 (signature: "")。

检查 可用类型 <label-sql_python_data_type_mappings>`的 **SQL Type** 列。要了解有关命名实参和可选实参的语法的更多信息,请参阅 :ref:`label-call_udf_calling_udf_optional

runtime

可选字符串型

执行存储过程或函数时使用的 Python 版本。默认值:“3.8”。

external_access_integrations

optionalstring sequence

此过程的处理程序代码访问外部网络所需的 外部访问集成 的名称。有关更多详细信息,请参阅 CREATE PROCEDURE

secrets

optionaldictionary

将密钥的名称分配给变量,以便在从处理程序代码中的密钥中检索信息时,可以使用这些变量引用密钥。有关更多详细信息,请参阅 CREATE PROCEDURE

imports

optionalstring sequence

要导入的先前已上传文件的暂存区和路径。有关更多详细信息,请参阅 CREATE PROCEDURE

execute_as_caller

optionalbool

仅适用于存储过程。确定存储过程是以所有者(您)的权限还是以调用者的权限执行。默认值:False(所有者权限)。

语言: 中文