使用VS code 创建 Azure Functions,从blob触发,解析,发送至Service Bus

场景:

某设备定时于每天23:00左右将一天的运行日志.devicelogtxt上传到Azure Blob,期待Blob文件上传后, 自动通过Azure Functions 解析文件并将文件内容写入到服务总线Service Bus的队列中。

 

 

上传的文件格式为:

 

步骤:

  1. 下载并安装VS Code;

  2. 下载VS Code 扩展:Azure Account/Funxtions/Nuget;

  3. 将VS Code Azure 调整成Azure-China;

  4. 在VS Code上登录Azure China账号;

  5. 下载安装Azure Functions Core Tools以便进行本地调试;

  6. 在Azrue Portal上准备Functions/Blob/Service Bus 环境;

  7.  在VS Code创建Functions;

  8. 在本地调试Functions;

  9. 使用VS Code直接发布Functions;

 

本实战的完整视频:

 

  https://v.qq.com/x/page/m3037qoso1i.html

 

需要安装的三个扩展:

Azure Account

 

Azure Functions

 

NuGet Package Manager

 

在VS Code中创建Functions步骤:

 

选择一个文件夹

 

选择C#语言

 

选择一个Blob触发器

 

Function 名称,可以保持默认

 

命名空间名称,可以保持默认

 

创建新的本地配置文件

 

选择创建好的storage 账户

 

填写要监控的容器

 

选择 存储账户

 

在当前窗口打开项目

 

 

 

 

 

本案例中的示例代码:

复制代码

using System;
using System.IO;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Extensions.Logging;
using Microsoft.Azure.ServiceBus;
using System.Text;
using Newtonsoft.Json;
​
namespace Company.Function
{public static class BlobTriggerCSharp{[FunctionName("BlobTriggerCSharp")]public static void Run([BlobTrigger("samples-workitems/{name}", Connection = "beifustoratgetest_STORAGE")]Stream myBlob, string name, ILogger log){log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
​StreamReader reader = new StreamReader(myBlob);string msg=string.Empty;while(!string.IsNullOrEmpty(msg=reader.ReadLine())){SendMsgToSbQueueAsync(new Msg(){dateTime=DateTime.Now,Msgstr=msg,DeviceId="001"});log.LogInformation($"oldContent:{msg}");}
​
​}
​
​
​public static async void SendMsgToSbQueueAsync(Msg msg){string ServiceBusConnectionString = "Endpoint=sb://seanyutest.servicebus.chinacloudapi.cn/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=rnVwTNyXWRDhi1scJ2ukW7al/5q0Y8sNY2H01dqSl3k=";string QueueName = "test";IQueueClient queueClient = new QueueClient(ServiceBusConnectionString, QueueName);
​
​string messageBody = JsonConvert.SerializeObject(msg);var message = new Message(Encoding.UTF8.GetBytes(messageBody));                   await   queueClient.SendAsync(message);}
​
​public class Msg{public DateTime dateTime{get;set;}public string Msgstr{get;set;}
​public string DeviceId{get;set;}}}
}

复制代码

 

 

 

 

 

从本地发布到Azure

Ctrl+shift+P

 

将链接字符串配置到云端的Functions:

其中名称要与local.settings.json中保持一致:

 

微软Azure IoT, AI,Cloud 产品实战视频,请关注作者公众号:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437812.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python CheckiO 题解】Remove Accents

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

Power Platform之Power Automate新增RPA功能

​ 什么是RPA RPA( Robotic Process Automation 机器人流程自动化软件),是一种新型的人工智能的虚拟流程自动化机器人。RPA的核心是通过自动化、智能化技术来“替代人”进行重复性、低价值、无需人工决策等固定性流程化操作,从而…

【Python CheckiO 题解】Count Consecutive Summers

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

Hyper-V第1代虚拟机和第2代虚拟机特性对照表

本文《Hyper-V第1代虚拟机和第2代虚拟机特性对照表》系小编在小伟博客看到的文档,转载给大家一起学习。 在 Windows Server 2012 R2 和 Windows 8.1 中内置的 Hyper-V 功能,新增了一种“第二代”虚拟机,从虚拟硬件的层面进行了提升&#xff0…

【Python CheckiO 题解】Speech Module

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

Dynamics 365 Online和On-premises在开发方式上的差别

1、新建账号的不同:on-premises(下文简称op)是和ad绑定的,所以必须先在ad中新建账号后才能在CRM中新建。而online是和Office365(下文简称O365)绑定的,所以需在O365中新建账号再分配D365许可(前提是已购买license),当分配完许可后,…

【Python CheckiO 题解】Time Converter (12h to 24h)

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

【转】Dynamics 365 On-Premise Server v9.0部署体验

期盼已久的Dynamics 365 On-Premise的版本升级终于在11月初姗姗来迟。 11月2日起已经可以在官方渠道下载正式版的Dynamics 365 Server v9.0安装文件,版本号9.0.2,随手附上中文版安装文件下载地址。 想必已经有不少小伙伴开始尝试各种升级、安装了吧。 …

【Python CheckiO 题解】Multicolored Lamp

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

【转】五大方法,彻底永久关闭win10自动更新的方法【已验证有效】

自从微软大面积使用某员工后,思路越来越奇葩了,前天工作没做完,放在那里,第二天毫无羞耻的就给你重启了,那一瞬间,真想拿dollar到对面slay。于是就有下文,大部分内容是从网上摘录、归纳起来的。…

【Python CheckiO 题解】Probably Dice

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

【Python CheckiO 题解】Roman Numerals

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

Dynamics CRM 2016 安装

Dynamics CRM 2016 安装 CRM 2016出来了一段时间了,一直也没机会尝试一下,现在再测试ADFS的时候顺手装一个测试环境,记录一下整个安装配置流程。 首先准备好windows 2012 std,sql server 2014, dynamics crm2016安装…

【Python CheckiO 题解】Largest Rectangle in a Histogram

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

Dynamics 365 on-premises 安装

安装Dynamics 365环境配置要求: 系统版本:Windows Server 2016 SQL 版本: Microsoft SQL Server 2016 SP2 Dynamics 365 版本:CRM9.0-Server-CHS-amd64 安装步骤: 一.在虚拟机安装Windows Server 2016 二.安装好…

【Python CheckiO 题解】Date and Time Converter

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

2.1Dynamics 365 安装问题——无法访MSCRM_CONFIG数据库

1. 问题 2. 原因 出现此问题的一个或多个下列条件都为真︰ 在多务器中安装 Microsoft Dynamics 365。然后,直接在运行 Microsoft SQL Server 的服务器上安装 Microsoft Dynamics 365。但是,没有设置某些 SQL Server 权限。Mic…

【Python CheckiO 题解】Army Battles

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

Dynamics 365 On-premises和Online 的不同

1、新建账号的不同:on-premises(下文简称op)是和ad绑定的,所以必须先在ad中新建账号后才能在CRM中新建。而online是和Office365(下文简称O365)绑定的,所以需在O365中新建账号再分配D365许可(前提是已购买license),当分配完许可后,…

华中科技大学文华学院 CSDN 高校俱乐部成立啦!

CSDN高校俱乐部是由中国专业的IT社区 CSDN(Chinese Software Develop Net)发起的,由全国各高校在校生代表自发加入的 IT 技术学习型组织。CSDN 由此搭建起行业与校园之间的桥梁,公益为各俱乐部提供行业资讯、技术学习、专家交流、…