本案例适用于开发者入门理解Azure Functions/ IoT Hub / Service Bus / Power BI等几款产品。

主要实战的内容为:

  1. 将设备遥测数据上传到物联网中心,

  2. 将遥测数据路由到消息中间件的Topic中,

  3. 使用Azure Function解析消息中间件Topic中的消息并推送到大屏 。

先了解下Azure Functions的基本概念:

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

在Azure Portal 创建Functions 并体验:

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

IoT Hub 和Service Bus的准备工作,请参考:

设备数据通过Azure Functions 推送到 Power BI 数据大屏进行展示(1.准备工作)

使用Visual studio 2019 创建并发布Functions:

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

本示例中的示例代码:

sing System;
using System.IO;
using System.Net;
using System.Text;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;

namespace FunctionApp2
{
public static class Function1
{
[FunctionName("Function1")]
public static void Run([ServiceBusTrigger("fromiothubtopic", "sub", Connection = "sbconn")]string mySbMsg, ILogger log)
{
log.LogInformation($"C# ServiceBus topic trigger function processed message: {mySbMsg}");


string url = "https://api.powerbi.cn/beta/请替换成您自己的URL";

IoTDeviceMsg msg = JsonConvert.DeserializeObject<IoTDeviceMsg>(mySbMsg);

// Create JSON message
var telemetryDataPoint = new
{
temperature = msg.temperature,
humidity = msg.humidity,
time = DateTime.Now
};
var messageString = JsonConvert.SerializeObject(telemetryDataPoint);


HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

req.Method = "POST";

req.Timeout = ;//设置请求超时时间,单位为毫秒

req.ContentType = "application/json";

byte[] data = Encoding.UTF8.GetBytes("[" + messageString + "]");

req.ContentLength = data.Length;

using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(data, , data.Length);

reqStream.Close();
}

HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

Stream stream = resp.GetResponseStream();

//获取响应内容

if (resp.StatusCode == HttpStatusCode.OK)
{

log.LogInformation($"OK: {messageString}");
}



}
}



public class IoTDeviceMsg
{
public decimal temperature { get; set; }
public decimal humidity { get; set; }
}
}

针对开发人员入门,需关注如下基本概念:

1.Azure Functions Trigger

AzureFunctions 提供了几种模板,模板支持如下的触发:

HTTPTrigger - 使用 HTTP 请求触发执行代码。

TimerTrigger - 按预定义的计划执行清除或其他批处理任务。

CosmosDBTrigger - 在 NoSQL 数据库中以集合形式添加或更新Azure CosmosDB 文档时,对这些文档进行处理。

QueueTrigger - 当消息到达 Azure 存储队列时,响应这些消息。

BlobTrigger - Azure 存储 blob 添加到容器时,处理这些 blob。 可以使用此函数调整图像大小。

EventHubTrigger - 响应传送到 Azure 事件中心的事件。

ServiceBusQueueTrigger - 通过侦听消息队列将代码连接到其他Azure 服务或本地服务。

ServiceBusTopicTrigger - 通过订阅主题将代码连接到其他Azure 服务或本地服务。

2. Azure Functions 集成

AzureFunctions 可与各种 Azure 和第三方服务集成。 这些服务可以触发函数开始执行,或者可用作代码的输入和输出。 AzureFunctions 支持以下服务集成:

Azure CosmosDB

Azure 事件中心

Azure 通知中心

Azure 服务总线(队列和主题)

Azure 存储(blob、队列和表)

本地(使用服务总线)

两种计费方式:

使用计划(Consumptionplan):只为代码运行时间付费

应用服务计划(App Serviceplan):将函数像 Web 应用一样运行。 如果已对其他应用程序使用应用服务,可以按相同的计划运行自己的函数,而不用另外付费。

具体的计费请参考:

https://www.azure.cn/zh-cn/pricing/details/azure-functions/

设备数据通过Azure Functions 推送到 Power BI 数据大屏进行展示(2.Azure Functions实战)的更多相关文章

  1. 设备数据通过Azure Functions 推送到 Power BI 数据大屏进行展示(1.准备工作)

    本案例适用于开发者入门理解Azure Functions/ IoT Hub / Service Bus / Power BI等几款产品. 主要实战的内容为: 将设备遥测数据上传到物联网中心, 将遥测数 ...

  2. 【NFS项目实战二】NFS共享数据的时时同步推送备份

    [NFS项目实战二]NFS共享数据的时时同步推送备份 标签(空格分隔): Linux服务搭建-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品, ...

  3. java推送数据到app--极光推送

    之前项目有用到需要把数据推送到app端 采用的是极光推送 特此把工具类和pom.xml需要的jar整理如下 pom.xml需要jar如下 <!-- 极光推送 --> <depende ...

  4. Power BI数据网关

      前言 你的组织中的用户可以访问本地数据(他们已经具有该数据的访问授权),但在这些用户可以连接到你的本地数据源之前,需要安装和配置本地数据网关. 该网关便于云中的用户与你的本地数据源相互进行快速安全 ...

  5. 第二篇:Power BI数据可视化之基于Web数据的报表制作(经典级示例)

    前言 报表制作流程的第一步显然是从各个数据源导入数据,Power BI能从很多种数据源导入数据:如Excel,CSV,XML,以及各类数据库(SQL Server,Oracle,My SQL等),两大 ...

  6. 第一篇:Power BI数据可视化概述

    前言 "可视化之工具,可爱者甚蕃.统计学家独爱R,自Python来,世人盛爱matplotlib.余独爱Power BI之出微软而不染(免费),濯Office而不妖(够精简).......& ...

  7. 海量大数据大屏分析展示一步到位:DataWorks数据服务对接DataV最佳实践

    1. 概述 数据服务(https://ds-cn-shanghai.data.aliyun.com)  是DataWorks产品家族的一员,提供了快速将数据表生成API的能力,通过可视化的向导,一分钟 ...

  8. 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践

    1. 概述 数据服务(https://ds-cn-shanghai.data.aliyun.com) 是DataWorks产品家族的一员,提供了快速将数据表生成API的能力,通过可视化的向导,一分钟“ ...

  9. rtmp 推送h264 + aac 的数据

    相关源码下载: http://download.csdn.net/detail/keepingstudying/8340431 需要libfaac,librtmp 的支持, 1.帧的划分 1.1 H. ...

随机推荐

  1. 新闻实时分析系统-Hadoop2.X HA架构与部署

    1.HDFS-HA架构原理介绍 hadoop2.x之后,Clouera提出了QJM/Qurom Journal Manager,这是一个基于Paxos算法实现的HDFS HA方案,它给出了一种较好的解 ...

  2. Xamarin.Forms 学习系列之底部tab

    App中一般都会有一个底部tab,用于切换不同的功能,在Xamarin中应该制作底部tab了,需要把Android的TabbedPage做一次渲染,IOS的则不用,接下来说下详细步骤: 1.在共享项目 ...

  3. SQL Server2017 安装完成后找不到启动项解决方案

    很多用于当SQL Server2017 安装完成后开始菜单找不到启动项无法启动SQL Server2017 其实你只需要安装一下SSMS-Setup-CHS就可以了 安装完成之后就有了 SSMS-Se ...

  4. k8s 上使用 StatefulSet 部署 zookeeper 集群

    目录 StatefulSet 部署 zookeeper 集群 创建pv StatefulSet 测试 StatefulSet 部署 zookeeper 集群 参考 k8s官网zookeeper集群的部 ...

  5. vCenter Server Appliance(VCSA )6.7部署指南

    目录 简介 环境准备 开始安装 第一阶段安装 第二阶段安装 使用 简介 早期的VCSA支持 SUSE 和 Windows,不太懂SUSE,也不想用Windows 而在2018年4月17日VCSA 6. ...

  6. 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(3)- Serial ISP模式(blhost)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的Serial ISP模式. 在上一篇文章 Boot配置(ISP Pin, OTP) 里痞子衡为大家 ...

  7. 本地Docker Jenkins构建dotnet core web应用到Linux服务器 Docker上

    1.准备工作 环境 本地: Windows.Docker 代码仓库:Git 服务器:Linux.Docker 前提准备 创建个有dockerfile文件的dotnet core 3 web项目 新建一 ...

  8. 一、Java基础篇

    1.简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java 平台的总称.由James Gosling和同事们共同研发,并在1995年正式推出 ...

  9. [UWP]在应用退出时弹出确认提示框

    1. 需求 在应用退出时(点击右上角的关闭按钮)弹出一个确认按钮可以说是一个最常见的操作了,例如记事本的"你是否保存": 但这个功能在UWP上居然有点小复杂.这篇文章将解释如何实现 ...

  10. 侠梦说pinpoint--界面上的图标之AgetnInfo数据研究

    前言 在启动一个挂载pinpoint的springboot项目的时候,界面上显示成了jboss的图标,所以今天研究了一下这个数据是怎么来的. 我们知道不同图标和服务类型有关,服务不同,图标就不同,这在 ...