创建 API CONNECTION
API CONNECTION 主要用于存储和保护第三方应用服务的身份认证信息。借助 API CONNECTION,云器 Lakehouse 的 EXTERNAL FUNCTION(外部函数)能够以安全的方式通过 API 调用与这些服务进行交互。目前,API CONNECTION 支持的外部服务包括 阿里云函数计算(Function Compute)、腾讯云云函数(Cloud Functions),以及 AWS Lambda。
语法
参数说明
| 参数 | 说明 |
|---|---|
| 要创建的 API 连接名称。 |
| 云函数服务提供商。支持的取值包括:、 和 。 |
| 云函数部署所在的区域。
示例:
• 阿里云:(区域代码参考)
• 腾讯云:(区域代码参考)
• AWS:(国际)或 (中国) |
| 用于执行云函数的角色 ARN
示例(阿里云):
示例(腾讯云):
示例(AWS):
|
| 云函数的命名空间。腾讯云需要提供该值。对于其他云服务,可填写 ,或根据实际情况留空。 |
| 存储云函数代码包的对象存储 bucket 名称。腾讯云格式为 ,如 。 |
其中,NAMESPACE:在腾讯云使用必须提供。如果是其他云服务则可以不填写或者直接填写
'default'该值如下图所示获取

案例说明
API CONNECTION 主要应用于 EXTERNAL FUNCTION 的创建。EXTERNAL FUNCTION 的使用如下过程
- 用户开通云上的函数计算服务(如阿里云的函数计算FC)和对象存储服务
- 将函数执行代码 & 可执行文件、依赖的库、模型和数据文件,打包上传至对象存储
- 并且授予云器 Lakehouse 操作上述服务和访问函数文件的权限
- 用户在云器 Lakehouse SQL 语句中调用 EXTERNAL FUNCTION
- 云器 Lakehouse 根据提供的服务地址和认证信息发送 http 请求调用运行函数
- 云器 Lakehouse 获取响应信息返回结果 因此你必须开通函数计算服务和对象存储服务。并且授权给云器 Lakehouse 权限
阿里云创建 API CONNECTION
-
环境准备 EXTERNAL FUNCTION 依赖阿里云的 "对象存储" 和 "函数计算" 服务, 请确保相关服务已开通。
-
步骤1: 开通函数计算 FC 和对象存储 OSS 服务。保持与云器 Lakehouse 实例同地域(如
)。cn-shanghai -
步骤2: 获取 OSS Bucket + AccessKey。
-
步骤3: 编辑 AliyunFCFullAccess 权限策略(补充 ram:PassRole 权限)。
- 访问 RAM 策略控制台 → 搜索 AliyunFCFullAccess → 编辑,添加
部分:ram:PassRole
- 访问 RAM 策略控制台 → 搜索 AliyunFCFullAccess → 编辑,添加
-
步骤4: 创建自定义权限策略 CzUdfOssAccess。
- 访问 RAM 策略控制台 → 创建权限策略 → 脚本编辑。
- 将
等替换为实际的 OSS bucket 名称。注意:相同的 bucket 需要同时有bucket_name_1
和bucket_name
两条 Resource 条目:bucket_name/*
- 点击下一步,填写策略名称 CzUdfOssAccess,点击完成。
-
步骤5: 创建 RAM 角色并授权。
- 进入 RAM 角色控制台 → 创建角色:
- 角色类型:阿里云账号 → 其他云账号
- 账号 ID 填
(云器 Lakehouse 的主账号),点击下一步1384322691904283 - 在选择权限中,分别勾选系统策略 AliyunFCFullAccess 和自定义策略 CzUdfOssAccess
- 点击下一步,填写角色名称(如
),点击确定CzUDFRole - 创建成功后进入角色详情页,获取 角色 ARN:
acs:ram::你的账号ID:role/CzUDFRole
-
步骤6: 执行 SQL 创建 API CONNECTION。
-
步骤7 (可选): 配置 External ID。
创建成功后执行以下命令获取 External ID:

回到阿里云 RAM 角色 →
→ 信任策略 → 编辑,将CzUDFRole
的值替换为 DESC 结果中的值:sts:ExternalId
腾讯云创建 API CONNECTION
环境准备 EXTERNAL FUNCTION 依赖腾讯云的 "对象存储" 和 "云函数" 服务, 请确保相关服务已开通.
-
对象存储:需要在云器 Lakehouse 部署地域 (例如 ap-shanghai) 用于存放函数基础代码;
-
云函数:云函数 服务开通后, 建议使用模板创建功能手动创建一个函数, 推荐使用Flask 框架模板等带有WebFunc标签的模板; 在此过程中, 腾讯云控制台 会引导用户完成一些初始化配置, 例如开通日志服务 (CLS) 等依赖服务, 创建必要 访问控制 (CAM) 角色, 授予必要 访问控制 (CAM) 权限等.
-
步骤1: 开通腾讯云的云函数(SCF)服务。云函数 region 保持和云器 Lakehouse 开服区域一致。

-
步骤2: 开通 COS 并创建存储桶。
- 进入 COS 控制台 → 创建存储桶(与 SCF 同地域,例如
)。ap-shanghai - 创建后在存储桶列表中可看到完整名称为
(如Bucket名-APP_ID
)。记录 Bucket 名和 APP_ID,后续配置需要分别使用。myfunction-1310000503
- 进入 COS 控制台 → 创建存储桶(与 SCF 同地域,例如
-
步骤3: 获取 API 密钥。
- 进入 访问管理 → 创建密钥,记录 SecretId 和 SecretKey。
-
步骤4: 创建 CAM 自定义策略 (LakehouseAccess)。
- 登录腾讯云,进入访问管理产品控制台
- 在访问管理页面左侧导航栏进入策略,选择 新建自定义策略 → 按策略语法创建 → 选择 空白模板,粘贴以下 JSON(将
、<region>
、<APP_ID>
替换为实际值):<bucket>
- 点击下一步,策略名称填
(必须这个名字),点击完成。LakehouseAccess
-
步骤5: 创建 CAM 角色 (LakehouseRole)。
- 进入 访问管理 → 新建角色:
- 角色载体:腾讯云账户 → 其他主账号
- 账号 ID 填
(云器的腾讯云主账号),点击下一步100029595716 - 勾选刚创建的
策略,点击下一步LakehouseAccess - 角色名称填
(必须这个名字),点击完成LakehouseRole - 创建成功后,进入角色详情页,获取角色 ARN:
qcs::cam::uin/你的账号ID:roleName/LakehouseRole
-
步骤6: 执行 SQL 创建 API CONNECTION。
-
步骤7 (可选): 配置 External ID。
在 API CONNECTION 创建成功后,执行以下命令获取 External ID:

- 客户侧:进入腾讯云访问管理控制台中,角色 → LakehouseRole → 角色载体 → 管理载体,选择 添加账户 → 选择当前主账号,并填写主账号ID
(云器的腾讯云主账号),并勾选开启校验,输入刚才 DESC 结果中的 EXTERNAL_ID,点击 确定 → 更新。100029595716
- 客户侧:进入腾讯云访问管理控制台中,角色 → LakehouseRole → 角色载体 → 管理载体,选择 添加账户 → 选择当前主账号,并填写主账号ID
AWS 创建 API CONNECTION
-
环境准备 EXTERNAL FUNCTION 依赖AWS的 "对象存储" 和 "Lambda函数" 服务, 请确保相关服务已开通。
- 中国区请使用 北京区控制台;国际区请使用对应区域控制台。
-
步骤1: 开通 Lambda 和 S3 服务。
- 进入 Lambda 控制台 和 S3 控制台,确认服务已开通。
-
步骤2: 创建 S3 存储桶。
- 进入 S3 控制台 → 创建存储桶(与 Lambda 同地域,例如
)。ap-southeast-1 - 记录 Bucket 名,后续 SQL 中需要用到。
- 进入 S3 控制台 → 创建存储桶(与 Lambda 同地域,例如
-
步骤3: 创建 IAM 用户并获取 AccessKey。
- 进入 IAM 用户 → 创建用户:
- 用户名随意(如
),不勾选「提供用户访问 AWS 管理控制台」qiliang-udf - 直接附加策略:搜索勾选
AmazonS3FullAccess - 创建完毕后,进入该用户 → 安全凭证 → 创建访问密钥
- 选择 命令行接口 (CLI) → 创建 → 保存 Access Key ID 和 Secret Access Key
-
步骤4: 创建 IAM 权限策略。
- 登录AWS 云平台,进入身份与访问管理(IAM) 产品控制台。
- 在 IAM 页面左侧导航栏进入 策略,选择 创建策略 → JSON 方式,粘贴以下策略(替换
为步骤2的 Bucket 名):<bucket>
- 点击下一步,策略名称填
,点击创建策略。LakehouseAccess
-
步骤5: 创建 IAM 角色。
- 进入 IAM 角色 → 创建角色:
- 信任实体类型:AWS 服务 → 使用案例:Lambda
- 权限策略:勾选刚创建的
和 AWS 内置的LakehouseAccessAWSLambdaBasicExecutionRole - 点击下一步,角色名称填
,点击创建角色Lambda-S3-Role - 创建成功后进入角色详情页,复制 Role ARN:
arn:aws:iam::你的AWS账号ID:role/Lambda-S3-Role
-
步骤6: 编辑信任策略(添加云器账号的 AssumeRole 权限)。
- 角色详情页 → Trust relationships → 编辑信任策略,将 Lambda 服务 + 云器账号都加入:
-
步骤7: 执行 SQL 创建 API CONNECTION。
-
步骤8 (可选): 配置 External ID。 在 API CONNECTION 创建成功后,执行以下命令获取 External ID:

回到 IAM 角色 →
→ Trust relationships → 编辑信任策略,在云器账号的Lambda-S3-Role
里添加Statement
:Condition
后续:
在完成 API CONNECTION 的创建之后,就可以继续创建外部函数,支持用 Python、Java 脚本处理云器 Lakehouse 中的数据。请参考: 创建外部函数
