设置具有代理资源的代理集成 - Amazon API Gateway
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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

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

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

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

注意

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

在通过 Lambda 代理集成或 HTTP 代理集成处理方法时,API Gateway 存在某些限制。有关详细信息,请参阅Amazon API Gateway 重要说明

注意

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

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

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

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

注意

HTTP 代理集成支持多值标头和查询字符串。

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

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

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

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