更新时间:2026-10-16 GMT+08:00
分享

runtime_env说明

runtime_env用于声明UDF运行所需的运行时环境,包括 Python 版本、PyPI 依赖包、环境变量等。该配置会序列化为JSON字符串存入LakeFormation的parameters.runtime_env字段,UDF在Aura引擎运行时按此配置准备环境。

作用

  • 保证可执行:UDF依赖的第三方包、Python版本在引擎侧按声明安装,避免"本地能跑、远端报错"。
  • 版本可控:支持固定Python版本(3.10/3.11)与指定包版本,保证运行环境一致。
  • 跨端同步:环境配置随函数元数据持久化,与函数生命周期绑定。

什么情况下使用

表1 场景说明

场景

用法

UDF 依赖第三方 Python 包

在pypi/pip中声明包名(如 ["numpy"])。

需指定 Python 版本

设置 python_version(仅支持3.11或3.10)。

需注入运行环境变量

设置env_vars。

无特殊依赖

传None即可,SDK构造默认环境(python_version=3.11)。

构造方式

runtime_env接受以下三种形式,SDK内部统一构造为RuntimeEnv对象:

表2 构造方式说明

传入形式

示例

说明

JSON字符串

'{"python_version": "3.11", "pypi": ["numpy"]}'

经json.loads解析。

Mapping/dict

{"python_version": "3.11", "pypi": ["numpy"]}

直接更新到内部数据结构。

None

-

构造默认RuntimeEnv,python_version设置为3.11。

常见键

表3 常见键说明

键

类型

说明

python_version

str

Python版本,仅支持3.11(默认)或3.10;传入其他版本会抛出ValueError。

pypi/pip

list[str]

PyPI依赖包列表;合并时按包名去重。

env_vars

dict

运行时环境变量。

默认值与校验行为

  • 当runtime_env为None时,SDK构造空RuntimeEnv,并自动将python_version设为3.11。
  • 若runtime_env提供了python_version,SDK校验其取值;非3.11/3.10时抛出ValueError。
  • RuntimeEnv是类字典的可变映射(MutableMapping),支持to_dict()、to_json()、merge(other) 方法。merge采用深合并策略:dict递归合并、list去重合并(pypi/pip/dependencies 键按包名去重)、标量冲突时左值优先。

返回值

返回Function对象,其中包含LakeFormation分配的version_id、resource_uris(OBS 包地址)及parameters(签名、运行时环境等元数据)。

相关文档