Amazon API Gateway
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

设置具有代理资源的代理集成

要在 API Gateway API 中设置具有代理集成的代理资源,您需要执行以下三项任务:

  • 创建一个“贪婪”路径变量为 {proxy+} 的代理资源。

  • 在代理资源上设置 ANY 方法。

  • 使用 HTTP 或 Lambda 集成类型将资源和方法与后端相集成。

注意

“贪婪”路径变量、ANY 方法和代理集成类型通常结合使用,但它们都是独立的功能。您可以在“贪婪”资源上配置特定 HTTP 方法,也可以将非代理集成类型应用于代理资源。

处理与 Lambda 代理集成或 HTTP 代理集成结合使用的方法时,API Gateway 存在某些限制。有关详细信息,请参阅 已知问题

注意

将代理集成与传递搭配使用时,如果未指定负载的内容类型,则 API Gateway 将返回默认的 Content-Type:application/json 标头。

使用以下 HTTP 代理集成或 Lambda 代理集成将 代理资源 与后端集成时,该代理资源的功能最为强大。

具有代理资源的 HTTP 代理集成

HTTP 代理集成,在 API Gateway REST API 中由 HTTP_PROXY 指定,用于将方法请求与后端 HTTP 终端节点集成。使用此集成类型,API Gateway 只需遵守特定限制,在前端和后端之间传递整个请求和响应。

将 HTTP 代理集成用于代理资源时,您可以设置 API 来公开采用单个集成设置的 HTTP 后端的部分或整个终端节点层次结构。例如,假设将网站后端组织成多个脱离根节点 (/site) 的树节点的多个分支,如 /site/a0/a1/.../aN/site/b0/b1/.../bM 等。如果将 /api/{proxy+} 代理资源 上的 ANY 方法与 URL 路径为 /site/{proxy} 的后端终端节点集成,则单个集成请求可以支持任何 [a0, a1, ..., aN, b0, b1, ...bM, ...] 上的任何 HTTP 操作 (GET、POST 等)。如果您将代理集成应用于特定的 HTTP 方法 (如 GET),则生成的集成请求将与任何后端节点上的指定 (即 GET) 操作配合发挥作用。

具有代理资源的 Lambda 代理集成

Lambda 代理集成,在 API Gateway REST API 中由 AWS_PROXY 指定,用于将方法请求与后端中的 Lambda 函数集成。使用这种集成类型,API Gateway 会应用默认映射模板将整个请求发送到 Lambda 函数,并将 Lambda 函数的输出转换为 HTTP 响应。

同样,您可以将 Lambda 代理集成应用于 /api/{proxy+} 代理资源以设置单个集成,从而让后端 Lambda 函数单独响应 /api 下任何 API 资源的更改。