跳到主要内容

通过 HTTP 访问云函数

通过 HTTP 访问服务,您可以将云函数配置为标准的 HTTP 接口,无需 SDK 即可通过 HTTP 请求调用云函数。本文档介绍如何配置云函数的 HTTP 访问以及如何处理请求和响应。

前置条件

  • 已创建云开发环境
  • 已部署至少一个云函数

配置 HTTP 访问

步骤 1:创建域名关联

  1. 前往 云开发平台 - HTTP 访问服务
  2. 在「域名关联资源」模块点击「新建」按钮
  3. 配置以下信息:
配置项说明示例
关联资源类型选择「云函数」,然后选择目标云函数hello-world
域名选择默认域名、自定义域名或 *(匹配所有域名)默认域名
触发路径设置 HTTP 访问路径,支持 / 或自定义路径/api/hello

💡 提示:生产环境建议绑定已备案的自定义域名,以获得完整的服务能力。配置方法请参考 自定义域名配置

步骤 2:测试访问

配置完成后,访问 域名 + 触发路径 即可调用云函数:

# 示例:访问默认域名的云函数
curl https://your-env-id.<your-env-region>.app.tcloudbase.com/api/hello

发起 HTTP 请求

配置完成后,可以使用任何 HTTP 客户端访问云函数。

# GET 请求
curl https://your-domain/your-function-path

# POST 请求
curl -X POST https://your-domain/your-function-path \
-H "Content-Type: application/json" \
-d '{"name": "CloudBase", "version": "1.0"}'

在云函数中处理 HTTP 请求

接收请求信息

当通过 HTTP 访问云函数时,函数的 event 参数会包含完整的 HTTP 请求信息:

exports.main = async (event, context) => {
// event 对象结构
const {
path, // HTTP 请求路径,如 /api/hello
httpMethod, // HTTP 请求方法,如 GET、POST、PUT、DELETE
headers, // HTTP 请求头对象
queryStringParameters, // URL 查询参数对象,如 ?name=value
body, // HTTP 请求体内容(字符串格式)
isBase64Encoded, // body 是否为 Base64 编码
requestContext // 云开发环境相关信息
} = event;

// 返回响应
return { message: 'success' };
};

示例:处理不同类型的请求

exports.main = async (event) => {
const { queryStringParameters } = event;

// 获取查询参数
const name = queryStringParameters?.name || 'Guest';

return {
statusCode: 200,
body: JSON.stringify({
message: `Hello, ${name}!`,
timestamp: Date.now()
})
};
};

访问示例

curl "https://your-domain/greet?name=CloudBase"
# 响应: {"message":"Hello, CloudBase!","timestamp":1699999999999}

相关文档