如何为 AWS Websocket API 网关添加自定义域?

How to add a custom domain for AWS Websocket API Gateway?

我创建了一个 AWS Websocket API 网关。它给了我一个端点如下:

wss://**********.execute-api.**-*****-*.amazonaws.com/dev

我需要将其更改为自定义域。怎么办。正如我所看到的,AWS 提供的 URL 是 wss 协议 URL.

一条URL以紧凑的形式表示多条信息。要求请求“https://example.com/some/path”的浏览器将:

  • 在 DNS 服务中查找“example.com”的服务器地址;这部分不知道也不关心 URL 的其余部分,它只需要一个 IP 地址
  • 使用“https”协议连接到该服务器;这意味着通过 TLS 传输 HTTP,并默认使用 TCP 端口 443
  • 连接后,请求路径“/some/path”

理论上,指向另一个域,比如“forward.example.org”到 DNS 中的同一服务器将允许 URL“https://forward.example.org/some/path”提供相同的内容。实际上,许多服务器被设置为接收对多个不同域的请求,并提供不同的内容,因此服务器还需要有一个规则,规定为该内容提供哪些内容。

使用像“wss://example.com”这样的URL是完全一样的:

  • 域名需要解析为合适的IP地址。由于您不想对该地址进行硬编码,因此您可以使用外部 DNS 服务中的 CNAME 或 Route53
  • 中的 ALIAS 记录来执行此操作
  • 服务器需要期待该主机名,才能知道要为它服务的API。在这种情况下,这意味着在 API 网关中设置“自定义域”设置。

另一个步骤 - 通过“wss”而不是“https”协议连接 - 不会改变服务器的查找方式,因此应该不会对流程产生任何影响。

我找到了答案。按照以下步骤将自定义域添加到 AWS Websocket API 网关

  1. 转到API 网关
  2. 转到“自定义域名”
  3. 创建域名。示例 api.company.com
  4. 复制“API网关域名”
  5. 前往 53 号公路
  6. 用域名添加记录名称
  7. 设置为 CNAME
  8. 对于值粘贴您复制的“API 网关域名”
  9. 现在使用 wss:// 域名。例如,wss://api.company.com 连接到 websocket

回来点个赞!