Azure Cognitive Service 访问优化

目前 MSFT 很多 Cognitive Service 在 China Azure 还没有落地,所以很多小伙伴只能使用国际版的 Azure 提供的 Cognitive 服务。但是这样存在两个问题,1. 使用体验,因为需要通过 Internet 进行调用,访问延迟及质量得不到保证。2. 有些 Cognitive 服务并不是所有 Global Azure 的 Region 都有落地,使得优化空间受限。今天咱们一起来分享一个优化结构的方案,通过将 API 网关前置放在 China Azure 的 Region 内,将 API 调用近源的引入的 Azure, 然后通过 Azure 内部网络来优化加持 Glocal Azure Cognitive 服务的质量。这里前置的 API 网关采用 Azure 上面的 API Management 服务来做,好处在于它是一款 PaaS 服务,快速简单易用且用户无需维护虚拟服务器。废话不说,撸袖子开干。

1. 创建 API Management

进入 China Azure Portal 主页,选择 API 管理服务

选择添加

输入 API 管理服务名称等必要信息

点击创建。

2. 配置 API 管理服务

点击步骤1创建的 API 管理服务,选择 API

创建 Blank API 空白 API

填入 API 信息并创建, 其中 Web service URL 为后端真实 Cognitive 服务的 API 地址,起获取可以参阅 Cognitive 相关手册了解获取方法,本文以 US Central 的 Custom Vision 服务为例

选择上一步创建的 API 并点击 Add operation,为 Operation 命名,并提供相应 Operation 的 URL,后续调用此 Operation 的完整 URL 就是上一步的 Web Service URL + operation URL。所以此处其实是将 Custom Vision 的 URL 进行了拆解,从中提取 Web Service URL 和 Operation URL,此步骤演示的 Custom Vision 的预测 URL。

设置 Http 请求 Header, 每一个 Cognitive 服务的 Restful API 接口对于 HTTP 请求的 Header 都是有明确要求的,可参阅 https://southcentralus.dev.cognitive.microsoft.com/docs/services/450e4ba4d72542e889d93fd7b8e960de/operations/5a6264bc40d86a0ef8b2c28f 。这里按照 Custom Vision 要求的 Haed 进行填写,这样当请求送往 API 管理服务时,这些 Header 将被自动添加到请求中。这里的 prediction-key 由 Custom Vision 配置页面获取。

设置 Request, 此部分在定义 HTTP 请求中 Body 的格式,当不满足格式的时候,请求将不被处理。本文以 Custom Vision 为例,可按照手册 https://southcentralus.dev.cognitive.microsoft.com/docs/services/450e4ba4d72542e889d93fd7b8e960de/operations/5a6264bc40d86a0ef8b2c28f 找到 Body 格式要求。

3. 配置产品

API 创建完毕后,其实并没有使能,在 API 管理服务中,需要将 API 放置在产品下才可以实现使能发布。

选择产品

选择 Unlimited 并选择添加 API

将前面创建的 Cognitive API 加入,至此所有跟 Custom Vision Predict API 在 API 管理服务上已经配置完成,此时可以开始测试试用

4. 测试 API 配置

选择 API,选择 Cognitive API,选择 Predict operation,选择 Test

填入修改测试请求信息,并发送

查看请求返回,当非 200 返回码时可以结合 Trace 进行问题定位。

5. 比较 API 管理服务方式和直接 Internet 调用 US Central Costom Vision 预测 API 的质量和体验。

通过脚本分别在上述场景模拟100次请求调用,比较请求完成时间。明显的发现从纵坐标延迟的表现和100次调用的抖动稳定性来看,API 管理服务的方式很好的提升了访问质量和体验。

如果小伙伴你之前也有类似的困惑,那就可以开始动手优化加持自己的 Azure Global Cognitive 服务啦。

参考资料 :

Custom Vision API Reference : https://southcentralus.dev.cognitive.microsoft.com/docs/services/450e4ba4d72542e889d93fd7b8e960de/operations/5a6264bc40d86a0ef8b2c290

API 管理服务手册:https://docs.azure.cn/zh-cn/api-management/api-management-key-concepts

原文地址:https://www.cnblogs.com/wekang/p/9114299.html

时间: 2024-10-09 00:55:04

Azure Cognitive Service 访问优化的相关文章

用Azure上Cognitive Service的Face API识别人脸

Azure在China已经发布了Cognitive Service,包括人脸识别.计算机视觉识别和情绪识别等服务. 本文将介绍如何用Face API识别本地或URL的人脸. 一 创建Cognitive Service 1 在Azure上创建Cognitive Service的Face服务: 2 获取服务的链接和key: 创建成功后,在overview的页面上可以看到服务链接,已经Key: 有了这些信息后,就可以开始进入coding的阶段了. 二 Python code 1 通过URL链接实现人脸

在Azure Container Service创建Kubernetes(k8s)群集运行ASP.NET Core跨平台应用程序

引子 在此前的一篇文章中,我介绍了如何在本地docker环境中运行ASP.NET Core跨平台应用程序(http://www.cnblogs.com/chenxizhang/p/7148657.html),看起来非常不错,不是吗?那么,如果我们希望真正在实际的生产环境去部署和运行这个应用程序,应该怎么做呢? 通常来说,有两种方案可以选择 1. 在目标运行环境(可以是本地的服务器,也可以是云端)申请虚拟机,然后启用docker运行这些应用程序,所有的细节都可以(也必须)由你自己控制. 2. 使用

在Azure Cloud Service中部署Java Web App(2)

接上文. 9.在进行发布之前,需要对我们的订阅做一些设置,因为默认情况下,Azure的service end指向的是Azure global的站点,如果我们要将服务发布在Azure的中国站点,需要做下简单的设置,在Eclipse中,打开偏好设置(preference),找到Azure,在service endpoint页面中,选择"windowsazure.才能(China),选择确定: 10. 回到项目,选择myazuredeploy并单击右键,选择Azure,properties,第一项是选

如何使用 OneAPM 监控微软 Azure Cloud Service ?

不知不觉微软 Azure 已经进入中国市场近两年的时间.那么 Azure 平台的性能究竟如何?资源加载的延迟.虚拟机的稳定性等问题是否切实满足客户期许.这些都是大家对微软 Azure 这个国外的云服务使者非常关注的问题. 市场对 IaaS 云服务商的对比评测报告数不胜数,很难说谁家的评测报告准确可靠.况且国内公网网络稳定情况与国外存在一定的差距.在这样一个相对不稳定的环境下,公有云服务的 SLA 对于客户的最终使用体验很难完全保证.如何能够帮助客户及时了解自己用户的真实体验,采用有效的工具实时监

Windows Azure Storage (17) Azure Storage读取访问地域冗余(Read Access – Geo Redundant Storage, RA-GRS)

<Windows Azure Platform 系列文章目录> 细心的用户会发现,微软在国外和国内的数据中心建设都是成对的,比如香港数据中心(Asia East)和新加坡的数据中心(South East Asia).这是因为微软充分考虑了异地冗余的能力.在两对数据中心之间,比如香港和新加坡,会有专线连接,这个专线是内网数据中心之前数据同步专用的. 一般情况下,主节点和备用节点的对应关系如下: Primary Secondary North Central US South Central US

Windows Azure Cloud Service (12) PaaS之Web Role, Worker Role, Azure Storage Queue(下)

<Windows Azure Platform 系列文章目录> 本章DEMO部分源代码,请在这里下载. 在上一章中,笔者介绍了我们可以使用Azure PaaS的Web Role和Worker Role来处理复杂的业务逻辑 -Web Role可以快速响应前端的业务请求,并将输入保存到Azure Storage Queue中 -Worker Role将数据从Queue中读取,可以在后端处理复杂的业务逻辑 -可以看到,Azure Storage Queue是前端业务逻辑和后端业务处理的桥梁 该架构图

Windows Azure Cloud Service (36) 在Azure Cloud Service配置SSL证书

<Windows Azure Platform 系列文章目录> 在某些时候,我们需要在Azure PaaS Cloud Service配置HTTPS连接.本章将介绍如何在本地创建证书,然后使用HTTPS连接Azure Cloud Service. 1.创建证书 以管理员身份运行CMD,使用Makecert命令,安装Azure证书.具体的命令如下: makecert -sky exchange -r -n "CN=<CertificateName>" -pe -a

如何将Azure DevOps中的代码发布到Azure App Service中

标题:如何将Azure DevOps中的代码发布到Azure App Service中 作者:Lamond Lu 背景 最近做了几个项目一直在用Azure DevOps和Azure App Service, 每次都要从零开始搭建从Azure DevOps向Azure App Service发布代码的环境,由于步骤比较繁琐,每次都会忘记其中几个步骤,所以在此总结一下,已备后续再次使用. Azure DevOps和Azure App Service Azure DevOps Azure DevOps

在Azure Cloud Service中部署Java Web App(1)

Microsoft Azure是一个开放的,灵活的云平台,除了对自家的.Net平台有良好的支持外,对于各种开源的软件,语言,工具,框架都有着良好的支持,比如Java,Php,Python等等,你可以使用自己喜欢的语言开发任何应用部署在Azure的web site或者云服务中. Azure的云服务是Azure的一个PAAS平台,同样支持多种不同的语言和框架,并且可以基于多种不同的阈值如CPU负载,队列,定时等等实现Auto scaling等高级功能,如下图所示: 本文简单介绍如何使用Azure所提