通过流量管理器和 Azure Functions(作为代理)为全球用户提供最靠近的认知服务(或自定义API)
本实战是一个中等复杂度的综合性实战,涉及到的内容有TrafficManager,AzureFunctions,域名/域名解析等几个内容。
本案例基础介绍:
https://www.bilibili.com/video/av86424146/
本案例实战:
Azure上认知服务(人脸,语音,翻译等)很多对外提供API的访问方式,如果我需要做一个全球型的人脸识别或者翻译的项目,则可能最终会在Global多个区域部署相应的认知服务,人脸识别设备或者翻译app访问最靠近用户的区域的认知服务即可最快的得到响应。
其中将用户导流向最靠近用户的区域的服务为TrafficManager;
TrafficManager的设计原理导致了它最终给到用户的是后端服务的IP地址而不是进行流量/请求转发,所以,如果最终你要访问的网站或API或者认知服务不能通过 IP方式访问或者不能够设置使用自定义域名访问,则可通过本案例的方式,即用Azure Functions 作为代理,通过配置自定义域名的方式间接访问你的目标。
假设你有一个API,该API 部署在了 IP地址为 A的一台虚拟机上,通过设置主机头,导致了该API只能通过域名的形式访问,比如域名设置成了api.5gn.link, 并且不能通过 IP 地址 A 进行访问。本案例适用于这种情况,案例中我们使用了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.在中国区创建Functions,chinafunction.chinacloudsites.cn;(略,在UkSouth 和WestUS2 分别创建Functions)
3. 通过Portal 修改 Functions,创建简单的Http触发的Functions(实际上Functions应该调用对应区域的认知服务或自定义API)
4.为Functions设置自定义域名 api.5gn.link
5. 申请SSL证书,并配置到Functions上
6.将流量管理器终结点中添加 chinafunction.chinacloudsites.cn(略,UKSouth和WestUS2)
在公众号阅读文章:https://mp.weixin.qq.com/s/ymRR_Boz13uEOg_9OUgWTA
在语雀阅读文章:https://www.yuque.com/seanyu/azure/bbe1xs
通过流量管理器和 Azure Functions(作为代理)为全球用户提供最靠近的认知服务(或自定义API)的更多相关文章
- Azure 认知服务 (5) 计算机视觉API - 使用C#代码实现读取图片中的文字(OCR)功能
<Windows Azure Platform 系列文章目录> 在笔者之前的文章:Azure 认知服务 (4) 计算机视觉API - 读取图片中的文字 (OCR) 介绍了使用用户界面,在海 ...
- Azure 认知服务 (4) 计算机视觉API - 读取图片中的文字 (OCR)
<Windows Azure Platform 系列文章目录> 微软Azure认知服务的计算机视觉API,还提供读取图片中的文字功能 在海外的Windows Azure认知服务的读取图片功 ...
- Azure认知服务之Face API上手体验
Azure认知服务:Face API Face API是Azure认知服务之一,Face API有两个主要功能: 人脸检测 Face API可在图像中以高精度人脸位置检测多达64个人脸.图像可以通过文 ...
- Azure 认知服务 (3) 计算机视觉API - 分析图像,使用C#代码
<Windows Azure Platform 系列文章目录> 在上一节中Azure 认知服务 (2) 计算机视觉API - 分析图像,笔者介绍了如何使用API测试控制台进行调试. 本章将 ...
- Azure 认知服务 (2) 计算机视觉API - 分析图像
<Windows Azure Platform 系列文章目录> 在上一节内容中,笔者介绍了微软认知服务的概览. 在本节中,笔者将详细介绍微软认知服务中的一种:计算机视觉 (Computer ...
- 转载文章:Windows Azure 七月份更新:SQL 数据库、流量管理器、自动伸缩、虚拟机
转载文章:Windows Azure 七月份更新:SQL 数据库.流量管理器.自动伸缩.虚拟机 今天上午,我们发布了一些重大的 Windows Azure 更新.这些新的增强功能包括: · SQL 数 ...
- 使用 Visual Studio 开发、测试和部署 Azure Functions(二)测试,部署
1,引言 上一篇介绍了使用使用 Visual Studio 开发 "Azure Functions" 函数,此篇介绍 “Azure Functions” 的测试以及直接从 Vist ...
- 使用Azure Functions 在web 应用中启用自动更新(一)分析基于轮询的 Web 应用的限制
1,引言 上一篇介绍了使用使用 Visual Studio 开发 "Azure Functions" 函数,此篇介绍 “Azure Functions” 的测试以及直接从 Vist ...
- 利用Azure Functions和k8s构建Serverless计算平台
题记:昨晚在一个技术社区直播分享了"利用Azure Functions和k8s构建Serverless计算平台"这一话题.整个分享分为4个部分:Serverless概念的介绍.Az ...
随机推荐
- 导出EXCEL设置单元格格式
怎么设置导出的EXCEL文件的列格式 如何设置导出的EXCEL文件的列格式在office的EXCEL中我们可以在一个EXCEL文件中,选中一列再点击鼠标右键,选择设置单元格格式,可以将这一列设为文本格 ...
- mysql之内连接,外连接(左连接,右连接),union,union all的区别
内连接,外连接,左连接,右连接,全连接 测试数据: CREATE TABLE `a_table` ( `a_id` int(11) DEFAULT NULL, `a_name` varchar(10) ...
- 图像分割利用KMeans生成灰度图
import numpy as np import PIL.Image as image from sklearn.cluster import KMeans def loadData(filePat ...
- java 连接远程Linux 服务器
创建闭锁,确保能连接到zk服务器. // 创建闭锁final CountDownLatch countDownLatch = new CountDownLatch(1); String connect ...
- c++读取注册表的实例
// CRegisterTest.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #in ...
- H5新增的标签和属性
声明 Web 世界中存在许多不同的文档.只有了解文档的类型,浏览器才能正确地显示文档. HTML 也有多个不同的版本,只有完全明白页面中使用的确切 HTML 版本,浏览器才能完全正确地显示出 HTML ...
- Derivative Pricing_1_Black
1. Stock Option wih divends 1.1 Task A 1.1.1 Calculate a ECO on a stock. /Ex-dividend dates in 3 and ...
- gets和scanf区别
scanf 和 gets 读取字符串 深入了解scanf()/getchar()和gets()等函数 scanf与gets函数读取字符串的区别 今天看到一段话,大致是说gets比scanf()快,有点 ...
- Ubuntu系统为MySQL开启远程连接
第一步:确保 Ubuntu 系统已经安装上了MySQL数据库.登陆数据库 ,运行如下命令: mysql -u 用户名 -p 然后输入密码,此时登录成功 第二步:创建用户用来远程连接,运行如下命令: G ...
- Django:邮件功能实现
django-users2和django的邮件功能模块都有相关的实现 ----------------------------------------------------------------- ...