通过流量管理器和 Azure Functions(作为代理)为全球用户提供最靠近的认知服务(或自定义API)

本实战是一等复杂度合性实战,涉及到的内容TrafficManagerAzureFunctions/域名解析等几个内容

本案例基础介绍:

 https://www.bilibili.com/video/av86424146/

 

本案例实战:

 

 

 

Azure上认知服务(人脸,语音,翻译等)很多对外提供API的访问方式,如果我需要做一个全球型的人脸识别或者翻译的项目,则可能最终会在Global多个区域部署相应的认知服务,人脸识别设备或者翻译app访问最靠近用户的区域的认知服务即可最快的得到响应。

 

其中将用户导流向最靠近用户的区域的服务为TrafficManager

TrafficManager的设计原理导致了它最终给到用户的是后端服务的IP地址而不是进行流量/请求转发,所以,如果最终你要访问的网站或API或者认知服务不能通过 IP方式访问或者不能够设置使用自定义域名访问,则可通过本案例的方式,即用Azure Functions 作为代理,通过配置自定义域名的方式间接访问你的目标

 

假设你有一个APIAPI 部署在了 IP地址为 A的一台虚拟机上,通过设置主机头,导致了该API只能通过名的形式访问,比如域名设置成了api.5gn.link, 并且不能通过 IP 地址 进行访问。本案例适用于这种情况,案例中我们使用了AzureFunctions,但实际上并不是唯一选择,也可以使用VM等支持设置自定义域名的服务即可。

 

 

 

全文请参见:

Azure Traffic Manager- 可以在全球 Azure 区域内以最佳方式分发流量

 

流量管理器-性能方式:

在国家或区域的两个或更多位置部署终结点,将流量路由到“最靠近”你的位置,即可改善许多应用程序的响应能力。 “性能”流量路由方法提供这种能力。

“最靠近”的终结点不一定是地理距离最近的终结点。 “性能”流量路由方法通过测试网络延迟来确定最靠近的终结点。 流量管理器维护一份Internet 延迟表,用于跟踪 IP 地址范围与每个 Azure 数据中心之间的往返时间。

流量管理器在 Internet 延迟表中查找传入 DNS 请求的源 IP 地址。 然后,流量管理器在处理该IP 地址范围的请求时具有最低延迟的Azure 数据中心内选择一个可用终结点,并在DNS 响应中返回该终结点。

流量管理器定期更新 Internet 延迟表,反映全国 Internet 的变化以及新的 Azure 区域。 但是,由于Internet 上的负载会实时变化,应用程序性能也会随之变化。 “性能”流量路由不会监视给定服务终结点上的负载。 但是,如果某个终结点变得不可用,则流量管理器不会在DNS 查询响应中包括该终结点。

本案例示意图:

 

 

本案例前置条件:

有控制权并备案的域名,本文以5gn.link做为演示,该域名托管在阿里云。

1. 在中国区创建 流量管理器functionproxy.trafficmanager.cn,配置为TCP, 443

2.在中国区创建Functionschinafunction.chinacloudsites.cn;(略,在UkSouth WestUS2 分别创建Functions

3. Portal 修改 Functions,创建简单的Http触发Functions(实际上Functions应该调用对应区域的认知服务或自定义API

4.Functions设置自定义域名 api.5gn.link

5. 申请SSL证书,并配置到Functions

6.将流量管理器终结点中添加 chinafunction.chinacloudsites.cn(略,UKSouthWestUS2

 

 

在公众号阅读文章:https://mp.weixin.qq.com/s/ymRR_Boz13uEOg_9OUgWTA

在语雀阅读文章:https://www.yuque.com/seanyu/azure/bbe1xs

posted @ 2020-02-03 09:06  shuzhen.yu  阅读(262)  评论(0编辑  收藏  举报