【发布时间】:2021-07-29 20:54:58
【问题描述】:
假设我们有一个基于 Azure FnApps 的微服务列表 - 用户服务、搜索服务、产品服务等...... 每个服务都是全局部署的。 例如:
user-service-uk.azurewebsites.net
user-service-west-us.azurewebsites.net
search-service-south-east-asia.azurewebsites.net
search-service-uk.azurewebsites.net
search-service-east-us.azurewebsites.net
..... ETC
我们有一个 APIM 接口,其中包含所有 api 操作并执行 AuthZ 和 AuthN。所以这不能被删除或替换。
myapis.azure-apis.net/user
myapis.azure-apis.net/search
myapis.azure-apis.net/product
在这种情况下进行地理交通管理的最佳方法是什么。
我们当前的方法是使用 APIM 策略。
<choose>
<when condition="@("West US".Equals(context.Deployment.Region, StringComparison.OrdinalIgnoreCase))">
<set-backend-service base-url="http://user-service-west-us.azurewebsites.net/" />
</when>
<when condition="@("South East Asia".Equals(context.Deployment.Region, StringComparison.OrdinalIgnoreCase))">
<set-backend-service base-url="http://user-service-south-east-asia.azurewebsites.net/" />
</when>
<otherwise>
<set-backend-service base-url="https://user-service-west-us.azurewebsites.net" />
</otherwise>
</choose>
但随着更多微服务的增长以及我们的应用进入更多地区,我们正面临着政策维护的噩梦。
我们探索了 Azure Front Door,但 URL 重写不允许我们携带匹配模式的后缀。
例如:
对于网址,https:myapi.azure-afd.net/user
当 url 与 /user/* Custom Rewrite 到 /* 匹配时,有没有办法设置 Routing-Tab 的 URLRewrite(表示除 /user 之外的整个 url-suffix)
PS:
我们想到的另一种方法是为每个微服务创建一个 Azure 流量管理器配置文件 例如:
https://user-service.trafficmanager.net
https://search-service.trafficmanager.net
https://product-service.trafficmanager.net
但是,随着 100 多个新微服务的出现,我们最终会遇到大量 ATM 配置文件。
【问题讨论】:
-
回复有用吗?
标签: azure-traffic-manager azure-front-door