简介
函数 URL 是函数的专用 HTTP(S) 端点。为函数配置函数 URL 后,可以通过 Web 浏览器、curl、Postman 或任何 HTTP 客户端通过其 HTTP(S) 端点调用函数。
您可以通过 SCF 控制台或 SCF API/CLI 创建和配置函数 URL。创建函数 URL 后,其 URL 端点将永久不变。函数 URL 的端点格式如下:
公网: https://<app-id>-<url-id>.<region>.tencentscf.com
内网: https://<app-id>-<url-id>.in.<region>.tencentscf.com
函数 URL 和触发器同级存在,适用于事件函数和 Web 函数。您可以在启用函数 URL 的同时配置 API 网关等触发器。
函数 URL 和函数的版本、别名一对一绑定,您需要手动为每个版本和别名开启或关闭函数 URL。默认情况下,函数 URL 是关闭的。
说明:
如需生成 WSS 地址,请在函数配置中启用 WebSocket 支持。
调用参数
事件函数
请求参数
URL 在接受到请求后,函数将会被触发运行,同时 URL 会将请求的相关信息以 event 入参的形式发送给被触发的函数。请求的相关信息包含了例如具体接受到请求的服务和 API 规则、请求的实际路径、方法、请求的 path、headers、query 等内容:
{
"body":"{\\"test\\":\\"hello world\\"}",
"headers":{
"accept":"*/*",
"accept-encoding":"gzip, deflate, br",
"cache-control":"no-cache",
"connection":"keep-alive",
"content-length":"17",
"x-scf-remote-addr":"111.206.96.145"
},
"httpMethod":"POST",
"path":"/",
"queryString":{
"a":"1",
"b":"2"
}
}
响应参数
当函数返回响应时,函数会解析响应并将其转换为 HTTP 响应,标准响应负载:
{
"statusCode": 201,
"headers": {
"Content-Type": "application/json",
"My-Custom-Header": "Custom Value"
},
"body": "{ \\"message\\": \\"Hello, world!\\" }"
}
函数会为您推断响应格式。如果您的函数返回有效的 JSON 并且没有返回 statusCode,函数会假设 statusCode 为200,content-type 为 application/json,body 是函数响应。
函数响应标准响应参数格式如下:
函数输出 | HTTP 响应(客户端看到的内容) |
| HTTP/2 200 date: Wed, 08 Sep 2021 18:02:24 GMT content-type: application/json content-length: 15
"Hello, world!"
|
{ "message": "Hello, world!" }
| HTTP/2 200 date: Wed, 08 Sep 2021 18:02:24 GMT content-type: application/json content-length: 34
{ "message": "Hello, world!" }
|
{ "statusCode": 201, "headers": { "Content-Type": "application/json", "My-Custom-Header": "Custom Value" }, "body": JSON.stringify({ "message": "Hello, world!" }) }
| HTTP/2 201 date: Wed, 08 Sep 2021 18:02:24 GMT content-type: application/json content-length: 27 my-custom-header: Custom Value
{ "message": "Hello, world!" }
|
Web 函数
URL 在接受到 HTTP 请求后,该函数将会被触发运行,此时 URL 会将 HTTP 请求直接透转,不再做 event 类型格式转换,同时请求响应也直接透转。