使用 Visual Studio 开发、测试和部署 Azure Functions(一)开发
1,什么是Azure functions
Azure Functions 是 Microsoft Azure 提供的完全托管的 PaaS 服务,用于实现无服务器体系结构。 Azure Functions 是一种完全可扩展、灵活、可靠且安全的服务。也称为无服务器应用,Azure Functions
由事件触发,而不是直接从应用程序调用。 可指定将触发函数应用中函数的事件类型。
说白了可以使用 ”Azure Functions“ 来托管你的代码,无需创建虚拟机,而 Azure Function 可以使用 C#、Java、JavaScript、PowerShell、Python 或 ”Azure Functions“ 支持的语言 中列出的任何一种语言来编写 Function。而要创建 ”Azure Function“,Azure 提供给我们众多模板。例如
1,HTTPTrigger:当 Web 应用中发生 HTTP 请求时,HTTP 触发器会运行该函数
2,TimerTrigger: 使用此事件可以按照你定义的计划在常规域间运行 Azure Functions。
3,BlobTrigger: 在 Azure Blob 存储中上传或修改文件时,会运行此函数类型
4,CosmosDBTrigger: 当文档添加到 Azure Cosmos DB 数据库或在其中进行修改时,此触发器会运行。
.......
这里不做过多介绍,今天重点演示 ”HttpTrigger“ 类型的 "Azure Functions "函数。
Visual Studio 为创建和测试 Azure Functions 应用提供了一个绝佳环境。 在将 Azure Functions 部署到云之前,可在本地开发 Azure Functions 并验证其是否正常运行。今天我们创建的是 HTTPTrigger的Azure Functions 应用,顾名思义,HTTPTrigger就是当当Web 应用中发生 HTTP 请求时,HTTP 触发器会运行该函数。 还可使用此触发器响应Webhook。 Webhook 是在修改网站托管的项时发生的回叫。 例如,可创建一个 Azure Functions,当存储库中的项发生更改时,该函数将由 GitHub 存储库中的 Webhook 触发。。
1,创建Azure Functions 应用(这里我使用的是VS2019)
(1)新建项目,在模板搜索框输入“Azure”,选择 “Azure Functions”用来创建Azure Functions 项目模板。
注意:如果没有Azure Functions 模板 请使用Visual Studio Installer去勾选对“Azure 开发的支持”
(2)新增Azure Functions 应该程序 ,此时可以看到 VS 提供了多种触发器,这里我们选择"Http trigger"
(2.1)Authorization level,我们选择“Anonymous”
(2.2)AzureWebJobStorage ,选择 ”存储仿真器“
创建完成后,我们将项目进行重新生成,
(3)在"Azure.Protal.Functions"项目上添加 “Azure 函数”,选择“Http trigger” ,修改 Authorization level 为“Anonymous”命名为“WatchPortalFunction”函数
在写入跟踪日志的语句后,将以下代码添加到方法的主体。 此代码从 HTTP 请求 URL 的查询字符串中读取 model
参数。 然后,此代码检索此监视模型的详细信息;在此示例中,函数仅返回一些虚拟数据。 最后,此函数返回包含这些详细信息的响应。 如果初始请求不包含具有 model
参数的查询字符串,此函数会返回错误消息。
string model = req.Query["model"]; // If the user specified a model id, find the details of the model of watch
if (model != null)
{
// Use dummy data for this example
dynamic watchinfo = new
{
Manufacturer = "Abc",
CaseType = "Solid",
Bezel = "Titanium",
Dial = "Roman",
CaseFinish = "Silver",
Jewels =
}; return (ActionResult)new OkObjectResult($"Watch Details: {watchinfo.Manufacturer}, {watchinfo.CaseType}, {watchinfo.Bezel}, {watchinfo.Dial}, {watchinfo.CaseFinish}, {watchinfo.Jewels}");
}
return new BadRequestObjectResult("Please provide a watch model in the query string");
在本地测试 Azure Functions
(1)单击“开始调试”。此时 Visual Studio 生成 ”Azure Functions“ 应用并启动 ”Azure Functions“ 运行时。
当运行时准备就绪后,可用的 HTTP 函数列表,以及可用于触发每个函数的 URL。
(2)在 浏览器里面进行测试
打开 Web 浏览器并输入 URL "http://localhost:7071/api/WatchPortalFunction?model=abd"。
此请求触发 ”WatchPortalFunction“ 函数,并将模型 abc
作为查询字符串参数传递。返回 ”Azure Functions“ 生成的虚拟详细信息。
(3) 在Postman中进行测试
此时使用 Postman 发出 Post 请求,通过 "QueryString" 的方式传递参数。
此时,可以看到我的在本地开发的 “Azure Functions" 的 "Http Tirgger" 类型的函数成功的在本地运行起来了,完成了 ”Azure Functions“ 入门的第一步。
三、总结
这一章是针对我之前在工作中遇到的一个问题,趁着假期考虑的一个解决方法,虽然只是一个小问题,但是还是挺有借鉴意义的,如果能够给你在日常的开发中提供些许的帮助,不胜荣幸。
出处:https://www.cnblogs.com/AllenMaster/articles/12633088.html
作者:Allen
版权:转载请在文章明显位置注明作者及出处。如发现错误,欢迎批评指正。
使用 Visual Studio 开发、测试和部署 Azure Functions(一)开发的更多相关文章
- 使用 Visual Studio 开发、测试和部署 Azure Functions(二)测试,部署
1,引言 上一篇介绍了使用使用 Visual Studio 开发 "Azure Functions" 函数,此篇介绍 “Azure Functions” 的测试以及直接从 Vist ...
- Visual Studio 2019本地不能运行Azure Functions
最近一个项目,需要维护同事写得代码,主要是一堆基于 .net core 3.1 的 Azure Functions.想起2年前第一次接触 Azure Functions(那次是基于.net frame ...
- Microsoft Azure Web Sites应用与实践【3】—— 通过Visual Studio Online在线编辑Microsoft Azure 网站
Microsoft Azure Web Sites应用与实践 系列: [1]—— 打造你的第一个Microsoft Azure Website [2]—— 通过本地IIS 远程管理Microsoft ...
- Visual Studio 2017 系统发布部署服务器教程
Visual Studio 2017 系统发布部署服务器教程 一.公司网站部署 --- 第一档 _Visual Studio 2017 发布网站系统教程 二.公司网站部署 --- 第二档 ...
- [Azure] 使用 Visual Studio 2013 管理中国版 Azure 订阅
比较关心微软平台技术的朋友应该都知道,微软云服务(Microsoft Azure)以下简称Azure分为全球版和中国版,由于政府法规问题中国版的服务是由二十一世纪互联运营,整体来看中国版Azure和全 ...
- SharePoint 2010中使用Visual Studio 2010进行方便快速的Web Part开发
转:http://www.cnblogs.com/fatwhale/archive/2010/02/24/1672633.html 在Visual Studio 2010中, 已经集成了用于Shar ...
- visual studio 2015下使用gcc调试linux c++开发环境搭建完整详解
一直以来,相信绝大部分的开发都是windows/mac下做开发,尤其是非嵌入式和qt系的,而开源服务器程序绝大部分都是跑在Linux下,几乎就没有跑在windows下的.一直以来开发人员都是在wind ...
- Visual Studio配置C/C++-PostgreSQL(9.6.3)开发环境(ZT)
https://www.2cto.com/database/201707/658910.html 开发环境 Visual Studio 2017[15.2(26430.16)] PostgreSQL ...
- [转发]在Visual Studio 2010/2012/2013/2015上使用C#开发Android/IOS安装包和操作步骤
官方学习文档:http://developer.xamarin.com/guides/android/getting_started/ 官方学习例子:http://developer.xamarin. ...
随机推荐
- 结题报告--P5551洛谷--Chino的树学
题目:点此 题目描述 Chino树是一棵具有某种性质的满二叉树,具体来说,对于这棵树的每一个非叶子节点,它的左子节点(A)(A)(A)的右子节点(C)(C)(C)与它的右子节点(B)(B)(B)的左子 ...
- Linux apache让网页编码错误
今天帮一个小伙伴搞作业,遇到安装discuz乱码问题,就顺便在这里写一下,以供其他同学纠正. 开apache配置文件/etc/httpd/conf/httpd.conf 查找AddDefaultCha ...
- 项目团队测试改进&产品测试方法的思考和改进
七月份了,2019年已过去一半: 后半年,我们要以什么样的成果来对生命唱赞歌? 我目前负责公司一个小产品线的测试,和一个大产品线的项目测试. 产品测试,我才加入3周: 经过这段时间断断续续的磨合,我对 ...
- Spring Ioc 依赖查找
Spring ioc 有依赖查找和依赖注入,之前不太明白依赖查找是什么意思,翻了一大堆博客看了好多定义也不太清楚 ,后来看了小马哥视频,他通过代码演示,清楚地讲解了什么是 依赖查找以及几种依赖查找的方 ...
- 解决mongo单文档超过16M
mongodb导入大文件的数据时,导入一小部分后,提示lost connect,失去连接.mongo文件有6.3G,网上查了一下,原来Mongo对单次处理好像有大小限制(16m),所以大文件会出问题, ...
- PPP协议(简述)
PPP协议(链路层协议):用于点对点信道.互联网用户通常需要连接到某个ISP(运营商)之后才能接入到互联网,PPP协议是用户计算机和ISP(运营商)进行通信时所使用的数据链路层协议.该协议可支持同一时 ...
- 数据库表结构查询SQL
今天给大家送上两个SQL查询的方法,也许在项目中你都用过,但是,没关系,仅仅记录下,以便后面不用去查找.针对与经常写SQL的同行来说,应该是非常简单的. 查询表结构数据 SELECT t.COLUMN ...
- 从零开始学习R语言(五)——数据结构之“列表(List)”
本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/60141740 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/125678 ...
- Java日期处理易踩的十个坑
前言 整理了Java日期处理的十个坑,希望对大家有帮助. 一.用Calendar设置时间的坑 反例: Calendar c = Calendar.getInstance(); c.set(Calend ...
- JavaScript----流程控制语句
##特殊语法 1.语句以;结尾,如果一行只有一条语句,则;可以省略(不建议)2.变量的定义使用var关键字,也可以不使用 * 用:定义的变量是局部变量 * 不用:定义的变量是全局变量(不建议使用) # ...