由于 API 网关产品计划于2025年6月30日停止服务,云函数 SCF & Serverless 应用的 API 网关触发器将进行如下调整,具体内容请参考:云函数 SCF 与 Serverless 应用平台 API 网关触发器下线通知。如果短期您仍需要新建 API 网关触发器,请提交工单至 API 网关团队申请开白。
API 网关触发器简介
您可以通过编写 SCF 云函数来实现 Web 后端服务,并通过 API 网关对外提供服务。API 网关会将请求内容以参数形式传递给函数,并将函数返回作为响应返回给请求方。API 网关触发器同时支持事件函数与 Web 函数触发,本文仅介绍事件函数触发的请求方式,Web 函数触发请参见 Web 函数触发器管理。
API 网关触发器具有以下特点:
Push 模型
API 网关在接收到 API 请求后,如果 API 在网关上的后端配置了对接云函数,该函数将会被触发运行。同时 API 网关会将 API 请求的相关信息以 event 入参的形式发送给被触发的函数。API 请求的相关信息包含了例如具体接收到请求的服务和 API 规则、请求的实际路径、方法、请求的 path、header、query 等内容。
同步调用
API 网关以同步调用的方式来调用函数,会在 API 网关中配置的超时时间未到前等待函数返回。有关调用类型的更多信息,请参见 调用类型。
在云函数控制台中,支持在触发方式中添加 API 网关触发器。支持选取已有 API 服务或新建 API 服务。支持请求方法(目前支持 ANY、GET、HEAD、POST、PUT、DELETE 六种方法的请求)、发布环境(测试、预发布及发布环境)及鉴权方式(API 网关密钥对)的定义。详情见 触发器管理。
在 API 网关控制台中配置 API 规则时,后端配置可选 Cloud Function,且在选择 Cloud Function 后,即可选择与 API 服务相同地域的云函数。在 API 网关控制台上,可以配置及管理更高阶的 API 服务,如限流计划、黑白名单等。
在 API 网关配置对接云函数时,也需要配置超时时间。API 网关中的请求超时时间和云函数的运行超时时间,两者分别生效。超时规则如下:
API 网关超时时间 > 云函数超时时间
云函数超时先生效,API 请求响应为200 HTTP code,但返回内容为云函数超时报错内容。
API 网关超时时间 < 云函数超时时间
API 网关超时先生效,API 请求响应为5xx HTTP code,标识请求超时。
API 网关触发器绑定限制
API 网关中,一条 API 规则仅能绑定一个云函数,但一个云函数可以被多个 API 规则绑定为后端。您可以在 API 网关控制台 创建一个包含不同路径的 API 并将后端指向同一个函数。相同路径、相同请求方法及不同发布环境的 API 被视为同一个 API,无法重复绑定。
目前 API 网关触发器仅支持同地域云函数绑定,例如广州地区创建的云函数,仅支持被广州地区创建的 API 服务中规则所绑定和触发。如果您想要使用特定地域的 API 网关配置来触发云函数,可以通过在对应地域下创建函数来实现。
请求与响应
针对 API 网关发送到云函数的请求处理方式,和云函数响应给 API 网关的返回值处理方式,称为请求方法和响应方法。请求方法和响应方法规划和实现的分别有透传方式和集成方式。
集成请求与透传请求
集成请求,是指 API 网关会将 HTTP 请求内容,转换为请求数据结构;请求数据结构作为函数的 event 输入参数,传递给函数并进行处理。具体请求数据结构说明如下。