更新时间:2026-10-16 GMT+08:00
删除函数
删除LakeFormation中的函数记录,并清理其在OBS上的UDF包。删除流程如下:
- 获取函数元数据(用于定位resource_uris)。
- 删除对应的OBS包(函数已部分删除时按前缀清理以避免泄漏)。
- 从LakeFormation删除函数记录。
- 若OBS清理失败但LakeFormation删除成功,抛出异常以提示存在孤儿包。
前提条件
- 已完成SDK安装。具体操作,请参见Catalog SDK获取与安装。
- 目标数据库与函数名已知(若函数元数据不可用,SDK将按{database}/{name}/前缀清理OBS)。
函数签名
client.delete_function(*, database=None, name) -> None
参数说明
| 参数 | 是否必选 | 类型 | 默认值 | 说明 |
|---|---|---|---|---|
| database | 否 | str | None | default_database | 数据库名;为None时使用默认数据库。 |
| name | 是 | str | - | 函数名。 |
返回值
无返回值(None)。
异常说明
| 异常 | 触发条件 |
|---|---|
| FunctionNotFoundError | 函数不存在(此异常在删除流程中被安全忽略,SDK改用前缀清理OBS)。 |
| LakeFormationAPIError | LakeFormation API调用失败(网络、鉴权、5xx 等),需向上传播以告知调用方清理未完成。 |
| OBSOperationError | OBS清理失败,但LakeFormation删除已成功时抛出,提示存在孤儿OBS包。 |
示例代码
client.delete_function(name="to_celsius")
print("Function deleted and OBS package cleaned")
- 当函数元数据不可用时,SDK会按数据库/函数名/前缀清理OBS对象,避免遗留孤儿包。
- 若OBS删除失败但LakeFormation记录已删除,SDK会抛出OBSOperationError,调用方需据此排查孤儿包。
父主题: Catalog SDK