设置具有代理资源的代理集成
要在 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 资源的更改。