如何为 API Gateway REST API 转发带有私有集成的主机标题?

1 分钟阅读
0

我想使用我的 Amazon API Gateway 端点或自定义域的主机标题值。我想为 API Gateway REST API 转发带有私有集成的主机标题。

概述

Amazon API Gateway 会覆盖它在对集成端点的原始请求中收到的主机值。根据集成请求端点 URL,Amazon API Gateway 会分配主机值。

要在后端使用 API 网关端点的主机标头值,请使用自定义标题。在集成请求中使用包含请求主机标题值的自定义标题。

解决方法

创建 API Gateway REST API

  1. 打开 API Gateway 控制台

  2. 选择创建 API

如果您是第一次使用 API Gateway,会显示一个页面,向您介绍该服务。对于 REST API,选择构建。弹出创建示例 API 窗口时,选择确定

  1. 对于选择 API 类型,在 ** REST API** 窗格中,选择构建

  2. 创建新 API 中,选择新建 API

  3. 设置中,输入以下值:
    API 名称中,输入名称来说明此 API 的用途。例如: ForwardHostHeader
    (可选)在描述中,输入对此 API 用途的概述。例如,用于私有集成的转发主机标题
    对于端点类型,选择区域边缘优化私有

  4. 选择创建 API

配置 API 的方法请求和集成请求

  1. 打开 API Gateway 控制台

  2. 按照说明使用 API Gateway 控制台创建具有私有集成功能的 API

  3. 方法请求中,将 HTTP 请求标题添加为主机。

  4. 集成请求中,展开 HTTP 标题,然后选择添加标题

  5. 输入自定义标题名称。例如,my_host

  6. 映射来源中,输入方法请求。例如,method.request.header.host。然后,选择复选标记图标。

将您的 API 部署到一个新阶段

  1. 打开 API Gateway 控制台

  2. 按照说明将 REST API 部署到某个阶段。有关更多信息,请参阅使用 API Gateway 控制台设置阶段

  3. 阶段编辑器窗格中,将调用 URL 复制到剪贴板。使用此 URL 调用您的 API。

REST API 调用 URL 示例:

https://1a2bc3d456.execute-api.us-east-1.amazonaws.com/stage
  1. 如果您使用应用程序负载均衡器作为后端,请添加一条规则来测试您的配置。选择“http header”作为条件,然后将“my_host”指定为与 API Gateway 主机值相同的标题和值。

  2. 将 API Gateway URL 粘贴到浏览器窗口中以调用您的 API。API Gateway 中的“my_host”标题配置将 API Gateway 的主机值转发给应用程序负载均衡器。应用程序负载均衡器匹配条件集,然后按配置返回响应。

相关信息

使用 API Gateway 控制台设置请求和响应数据映射

使用 API Gateway 控制台设置 API

Amazon API Gateway 重要注意事项

如何将 API Gateway REST API 与应用程序负载均衡器集成?

AWS 官方
AWS 官方已更新 1 年前