我想使用我的 Amazon API Gateway 端点或自定义域的主机标题值。我想为 API Gateway REST API 转发带有私有集成的主机标题。
概述
Amazon API Gateway 会覆盖它在对集成端点的原始请求中收到的主机值。根据集成请求端点 URL,Amazon API Gateway 会分配主机值。
要在后端使用 API 网关端点的主机标头值,请使用自定义标题。在集成请求中使用包含请求主机标题值的自定义标题。
解决方法
创建 API Gateway REST API
-
打开 API Gateway 控制台。
-
选择创建 API。
或
如果您是第一次使用 API Gateway,会显示一个页面,向您介绍该服务。对于 REST API,选择构建。弹出创建示例 API 窗口时,选择确定。
-
对于选择 API 类型,在 ** REST API** 窗格中,选择构建。
-
在创建新 API 中,选择新建 API。
-
在设置中,输入以下值:
在 API 名称中,输入名称来说明此 API 的用途。例如: ForwardHostHeader。
(可选)在描述中,输入对此 API 用途的概述。例如,用于私有集成的转发主机标题。
对于端点类型,选择区域、边缘优化或私有。
-
选择创建 API。
配置 API 的方法请求和集成请求
-
打开 API Gateway 控制台。
-
按照说明使用 API Gateway 控制台创建具有私有集成功能的 API。
-
在方法请求中,将 HTTP 请求标题添加为主机。
-
在集成请求中,展开 HTTP 标题,然后选择添加标题。
-
输入自定义标题名称。例如,my_host。
-
在映射来源中,输入方法请求。例如,method.request.header.host。然后,选择复选标记图标。
将您的 API 部署到一个新阶段
-
打开 API Gateway 控制台。
-
按照说明将 REST API 部署到某个阶段。有关更多信息,请参阅使用 API Gateway 控制台设置阶段。
-
在阶段编辑器窗格中,将调用 URL 复制到剪贴板。使用此 URL 调用您的 API。
REST API 调用 URL 示例:
https://1a2bc3d456.execute-api.us-east-1.amazonaws.com/stage
-
如果您使用应用程序负载均衡器作为后端,请添加一条规则来测试您的配置。选择“http header”作为条件,然后将“my_host”指定为与 API Gateway 主机值相同的标题和值。
-
将 API Gateway URL 粘贴到浏览器窗口中以调用您的 API。API Gateway 中的“my_host”标题配置将 API Gateway 的主机值转发给应用程序负载均衡器。应用程序负载均衡器匹配条件集,然后按配置返回响应。
相关信息
使用 API Gateway 控制台设置请求和响应数据映射
使用 API Gateway 控制台设置 API
Amazon API Gateway 重要注意事项
如何将 API Gateway REST API 与应用程序负载均衡器集成?