本实战是一个中等复杂度的综合性实战,涉及到的内容有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)的更多相关文章

  1. Azure 认知服务 (5) 计算机视觉API - 使用C#代码实现读取图片中的文字(OCR)功能

    <Windows Azure Platform 系列文章目录> 在笔者之前的文章:Azure 认知服务 (4) 计算机视觉API - 读取图片中的文字 (OCR) 介绍了使用用户界面,在海 ...

  2. Azure 认知服务 (4) 计算机视觉API - 读取图片中的文字 (OCR)

    <Windows Azure Platform 系列文章目录> 微软Azure认知服务的计算机视觉API,还提供读取图片中的文字功能 在海外的Windows Azure认知服务的读取图片功 ...

  3. Azure认知服务之Face API上手体验

    Azure认知服务:Face API Face API是Azure认知服务之一,Face API有两个主要功能: 人脸检测 Face API可在图像中以高精度人脸位置检测多达64个人脸.图像可以通过文 ...

  4. Azure 认知服务 (3) 计算机视觉API - 分析图像,使用C#代码

    <Windows Azure Platform 系列文章目录> 在上一节中Azure 认知服务 (2) 计算机视觉API - 分析图像,笔者介绍了如何使用API测试控制台进行调试. 本章将 ...

  5. Azure 认知服务 (2) 计算机视觉API - 分析图像

    <Windows Azure Platform 系列文章目录> 在上一节内容中,笔者介绍了微软认知服务的概览. 在本节中,笔者将详细介绍微软认知服务中的一种:计算机视觉 (Computer ...

  6. 转载文章:Windows Azure 七月份更新:SQL 数据库、流量管理器、自动伸缩、虚拟机

    转载文章:Windows Azure 七月份更新:SQL 数据库.流量管理器.自动伸缩.虚拟机 今天上午,我们发布了一些重大的 Windows Azure 更新.这些新的增强功能包括: · SQL 数 ...

  7. 使用 Visual Studio 开发、测试和部署 Azure Functions(二)测试,部署

    1,引言 上一篇介绍了使用使用 Visual Studio 开发 "Azure Functions" 函数,此篇介绍 “Azure Functions” 的测试以及直接从 Vist ...

  8. 使用Azure Functions 在web 应用中启用自动更新(一)分析基于轮询的 Web 应用的限制

    1,引言 上一篇介绍了使用使用 Visual Studio 开发 "Azure Functions" 函数,此篇介绍 “Azure Functions” 的测试以及直接从 Vist ...

  9. 利用Azure Functions和k8s构建Serverless计算平台

    题记:昨晚在一个技术社区直播分享了"利用Azure Functions和k8s构建Serverless计算平台"这一话题.整个分享分为4个部分:Serverless概念的介绍.Az ...

随机推荐

  1. 1.项目创建及集成git

    1.创建项目 (1)创建完以后,打开Terminal命令行,输入"git init"用于初始化本地仓库 (2)打开对应的项目文件夹,“Ctrl+h”可以查看该文件夹里是否存在.gi ...

  2. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:设定大写文本

    <!DOCTYPE html> <html> <head> <title>菜鸟教程(runoob.com)</title> <meta ...

  3. C#多态学习总结

    面向对象编程三大特点  封装 继承 多态.今天我把自己学习多态的过程进行总结 多态 就是 同一个方法在不同情况下,会表选不同的效果(多个形态).在代码上表现就是 同一个父类对象 赋予不同的子类对象 就 ...

  4. HDU 5570:balls 期望。。。。。。。。。。。。。。。

    balls  Accepts: 19  Submissions: 55  Time Limit: 6000/3000 MS (Java/Others)  Memory Limit: 65536/655 ...

  5. mac下删除不需要的应用程序

    一般的应用程序删除: 1)可以在 前往--应用程序 中直接删除 2)直接在启动台中按住出现X直接删除. 问题: mac下不出现在应用程序中,启动台中按住也不出现X,也不可以直接拖到废纸篓中删除的应用如 ...

  6. mysql8 Could not retrieve transation read-only status server

    想回顾下ssm,看着网上别的帖子手动搭了一个,一直报Could not retrieve transation read-only status server , java.sql.SQLExcept ...

  7. Linux centos7 VMware Apache访问日志不记录静态文件、访问日志切割、静态元素过期时间

    一.Apache访问日志不记录静态文件 网站大多元素为静态文件,如图片.css.js等,这些元素可以不用记录 vim /usr/local/apache2.4/conf/extra/httpd-vho ...

  8. zookeeper和eureka的区别在哪?

    zookeeper和eureka的区别在哪?传统的关系型数据库是ACID(原子性,一致性,独立性,持久性), nosql数据库是CAP(强一致性,可用性,分区容错性),分布式系统只能3进2,三个选两个 ...

  9. mysql path妙用

    CREATE TABLE `lc_c_user_path` ( `id` INT ( ) UNSIGNED NOT NULL AUTO_INCREMENT, `user_id` VARCHAR ( ) ...

  10. Python—数据类型之集合(Set)

    1.集合是一个无序的,且不重复元素的集合.它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的. 2.基本功能包括关系测试和消除重复元素.注意:集合存在的意义就是去 ...