例如,我有2个API网关,它们具有在2个不同区域工作的不同自定义域,
NA:
- 自定义域名:us.api.example.com
- API网关域名:APIGateway1.execute-API.us-west-2.amazonaws.com
欧盟:
- 自定义域名:eu.api.example.com
- API网关域名:APIGateway2.execute-API.eu-west-2.amazonaws.com
对于每个自定义域,我按照aws文档创建了带有简单路由策略的A类记录
NA:
- 记录名称:us.api.example.com
- 类型:A
- 路由策略:简单
- 价值/路线流量:APIGateway1.execute-api.us-west-2.amazonaws.com
欧盟:
- 记录名称:eu.api.example.com
- 类型:A
- 路由策略:简单
- 价值/路线流量:APIGateway2.execute-api.eu-west-2.amazonaws.com
他们都工作得很好
现在我想做一个地理定位DNS路由像:
NA:
- 记录名称:us.api.example.com
- 类型:A
- 路由策略:地理位置
- 价值/路线流量:APIGateway1.execute-api.us-west-2.amazonaws.com
- 地点:NA
- 记录名称:us.api.example.com
- 类型:A
- 路由策略:地理位置
- 价值/路线流量:APIGateway2.execute-api.us-west-2.amazonaws.com
- 地点:欧盟
基本上将流量从us.api.example.com路由到欧盟客户端的APIGateway2。这打破了";您要将流量路由到的API必须包括一个自定义域名,如API.example.com,该域名与路由53记录的名称"匹配;本文件中提到:https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-api-gateway.html
想得到一些帮助和建议,看看不同API网关自定义域上的路由53 DNS路由是否真的无法实现?
我认为技巧是使用通配符自定义域:如果您的2个API网关位于不同的AWS区域,则此操作有效:
美国上一代中的APIG1(或APIG2以外的任何东西(:
- 自定义域名:*.my.api.com
美国测试-2中的APIG2(或APIG1以外的任何东西(:
- 自定义域名:*.my.api.com
两个自定义域都应该提供一个允许所有预期子域的证书。您也可以使用通配符证书*.my.api.com
那么您已经托管了区域my.api.com
- CNAME记录
us-east-1.my.api.com
->APIG1的终点 - CNAME记录
us-west-2.my.api.com
->APIG2的终点我用循环法进行了测试,它有效: - CNAME记录
round-robin.my.api.com
->us-east-1.my.api.com
(重量x(CNAME记录 round-robin.my.api.com
->us-west-2.my.api.com
(重量y(
我想如果你做地理路由,它也会起作用。
不幸的是,如果您在同一个AWS区域中有多个APIG,这将不起作用,因为通配符域名是区域性的,并且每个区域必须是唯一的。我们仍在寻求帮助