物联网开发人员:工具和经验

引入用于 Azure IoT Edge 的 Visual Studio 工具

今天,我们很高兴地发布用于 Visual Studio 2017 的 Azure IoT Edge 工具的预览版。Azure IoT Edge 是一个全托管服务,通过直接在跨平台物联网设备上部署并运行人工智能、Azure 服务和自定义逻辑,从而在本地提供云智能。使用此预览版,您可以在 Visual Studio 中创建 Azure IoT Edge 项目,添加 C# 自定义模块,生成模块,并将这些模块推送到 IoT Edge 设备上。此外,您还可以在本地 Visual Studio 中同时调试单个 C# 模块或多个模块。

在这篇文章中,我们将向您介绍如何使用 Visual Studio 2017 创建、构建、调试和部署您的首个 IoT Edge 解决方案。

先决条件

开始使用前,我们需要做以下准备工作。

  • 安装 .Net Core 2.1 SDK。

  • 安装 Windows 版 Docker CE。同时确保 Docker CE 以所需的容器模式(Windows      或 Linux)运行。

  • 安装 Python 和 Pip。要安装 Azure IoT Edge Hub Dev 工具,必须安装 Python 和 Pip。

  • 在终端中运行以下命令,安装 Azure IoT Edge Hub Dev 工具 (iotedgehubdev)

pip install -U iotedgehubdev
  • 从 Visual Studio 市场安装 Visual Studio 版 Azure IoT Edge 工具。

  • 更新 Visual Studio 的 Cloud Explorer。“工具” > “扩展…” > “查找 Cloud Explorer”,然后单击“更新”按钮(版本号)

在Visual Studio中创建首个IoT Edge解决方案

在 Azure IoT Edge 示例项目中,我们将从 C# 模块开始,该模块可将消息从模拟温度传感器直接发送到 Azure IoT 中心。

■ 1、在 Visual Studio 中,导航到“文件” > “新建” > “项目”

■ 2、在 "Visual C#" 部分下选择“云”节点,然后选择 "Azure IoT Edge" 项目类型。如果需要,您可以指定“解决方案名称”和“解决方案位置”。然后单击“确定”。

■ 3、在“模块配置”窗口中,您需要提供 C# 模块项目名称和 Docker 映像存储库。若要在 Azure 容器注册表上托管映像,请将 localhost:5000 替换为从 ACR 复制的登录服务器值。最终字符串与 <注册表名称>.azurecr.io/iotedgemodule1 类似。然后单击“确定”。

现在,Visual Studio 向您提供 Azure IoT Edge 解决方案,其中有两个项目。

  • AzureIoTEdgeApp1 是 Azure IoT Edge 项目,包含 Azure IoT Edge 部署清单模板,该模板描述解决方案的模块映像以及模块间的路由。

  • IoTEdgeModule1 是第一个 C# 模块项目,属于 .Net Core 控制台应用程序。

构建和调试单个 C# 模块

通常,我们希望先测试/调试每个模块之后,再让该模块与多个模块一起在整个解决方案中运行。

■ 1、成功创建项目后,在上下文菜单中将 IoTEdgeModule1 选为默认项目。

■ 2、按 F5 或单击以下按钮运行模块,第一次可能耗时 10~20 秒。

注:如果发现任何冲突错误,则需使用 Docker CLI 停止正在运行的同名容器,然后再按一次 F5。

■ 3、如果模块已成功初始化,您将看到 .Net Core 控制台应用程序已启动。

■ 4、现在您可以在 Program.cs 的 PipeMessage 中设置断点,然后在 Git Bash 或 WSL Bash 中运行以下命令来发送消息(请勿在 CMD 或 Powershell 中运行以下命令)(您也可以在“输出”窗口中找到此命令):

curl --header "Content-Type: application/json" --request POST --data '{"inputName": "input1","data":"hello world"}' http://localhost:53000/api/v1/messages

■ 5、断点应被触发。您可以在“Visual Studio 局部变量”窗口中查看变量。

构建和调试具有多个模块的 IoT Edge 解决方案

开发了单个模块之后,接下来,我们希望运行和调试具有多个模块的整个解决方案。

■ 1、将第二个 C# 模块添加到解决方案中。右击 AzureIoTEdgeApp1 并选择“添加” > “新建 IoT Edge 模块”。此操作将把 IoTEdgeModule2 添加到项目中,还会更新 AzureIoTEdgeApp1 项目中的 deployment.template.json。第二个模块仍然是一个管道模块,接收来自模拟温度传感器的消息,并将消息发送给 IoT 中心。

■ 2、将 AzureIoTEdgeApp1 项目设为启动项目。

■ 3、按 F5,然后即可同时运行和调试多个模块。您将会看到多个 .Net Core 控制台应用程序窗口,每个窗口都显示 C# 模块。若要更新模块拓扑,请更新 AzureIoTEdgeApp1 > deployment.template.json 中的路由部分。

生成和推送映像至 Azure 容器注册表

接下来,我们将所有 C# 模块放入 Docker 映像中并推送到 ACR。

■ 1、请确保启动项目是 AzureIoTEdgeApp1。选择“调试”或“发布”配置,以生成模块映像。

■ 2、在终端通过以下命令运行 Docker 登录

docker login -u <ACR username> -p <ACR password> <ACR login server> 

■ 3、使用以下内容更新 deployment.template.json。请记住将占位符替换为实际的管理员用户名和密码。

■ 4、右击 AzureIoTEdgeApp1 并选择上下文菜单项“生成并推送      Edge 解决方案”,该项将为每个模块生成和推送 Docker 映像。

在VisualStudioCloudExplorer中创建IoTEdge部署

现在所有映像都可以在 ACR 中部署。

■ 1、单击“试图” > Cloud Explorer,打开 Cloud Explorer

■ 2、右击 IoT Edge 设备,为其创建部署,你需要选择 $AzureIoTEdgeApp1\config\Debug|Release\deployment.json 下的部署清单文件。

注:您需要自行在 Windows 或 Linux 设备上设置 IoT Edge 守护程序。

查看生成的数据

要监视特定设备的 D2C 消息,请右击列表中的设备,然后选择“开始监视 D2C 消息”。

已知限制

由于这是 Visual Studio 中 IoT Edge 工具的第一个预览版,因此存在几个已知的局限,具体如下:

  • 用于部署清单文件的 IntelliSense:除 Json 验证之外,我们还没有用于 deployment.template.json 和 deployment.json 的 IntelliSense。

  • 仅支持 C# 自定义模块:我们计划尽快为自定义模块和函数支持添加其他语言。

  • 仅支持 Amd64 Linux 和 Windows Docker 文件:我们正在为 arm-Linux 模块进行交叉编译。

结论

通过 Visual Studio 2017 中的这些新工具,您现在可以使用 Azure IoT Edge 轻松创建、调试和部署解决方案。请从 Azure IoT Edge for Visual Studio 下载并试用它(预览版)。此外,请将您遇到的任何问题、任何功能请求或其他问题报告给 vsciet@microsoft.com。

 本文翻译转载自MSDN网站

▶ 原文作者:Xin_Shi

引入用于 Azure IoT Edge 的 Visual Studio 工具相关推荐

  1. 学习Azure Functions:在Visual Studio 2017中创建Azure Functions

    目录 介绍 Azure Azure帐户设置 设置开发环境 案例分析 在Visual Studio 2017中创建Azure Functions 添加Azure Functions项目 添加HTTP触发 ...

  2. sql azure 语法_使用Visual Studio和SQL Azure数据库

    sql azure 语法 介绍 ( Introduction ) In this chapter, we will work with Visual Studio to connect to SQL ...

  3. Azure IoT Edge入门(2)部署一台Edge Device

    案例:部署一台Edge Device(Windows 系统) 通常情况下,部署一台Edge设备有如下四个步骤: 1. 创建Azure IoT Hub: 2.准备Edge Device(windows/ ...

  4. 控制数十万网吧电脑挖矿,嫌疑人落网;微软开源 Azure IoT Edge 边缘计算服务

    (点击上方蓝字,快速关注我们) 转自:开源中国.solidot.cnBeta.腾讯科技等 0.浙江破获新型网络犯罪:嫌疑人控数十万网吧电脑挖矿 利用维护网吧电脑之机,暗中在电脑植入特殊程序" ...

  5. 微软宣布正式开源 Azure IoT Edge 边缘计算服务

    微软宣布,去年年底公开预览的 Azure IoT Edge 边缘计算服务已进入官方版,并通过 GitHub 将其开源. Azure IoT Edge 主要将基于云的分析和定制的业务逻辑转移到边缘设备, ...

  6. Azure IoT Edge on Windows 10 IoT Core

    在今年的Build大会上,微软推出了Azure IoT Edge的第一个版本(https://github.com/Azure/iot-edge ).该版本的主要特点就是将计算能力由Azure端推送至 ...

  7. Visual Studio工具集相关(MSBuild)

    Visual Studio工具集相关(MSBuild) 1.平台工具集本质就是MSBuild 2.MSBuild位置:据官方文档说 3.图中列表: 4.平台工具集--VS各版本对应的工具集版本号如下: ...

  8. Oracle dataset 工具,[Oracle] 32-bit ODAC 與 Visual Studio工具 (.NET)

    摘要:[Oracle] 32-bit ODAC 與 Visual Studio工具 (.NET) Oracle Data Access Components (ODAC) for Windows 請由 ...

  9. basic 重命名_用于重命名文件的Visual Basic工具。

    basic 重命名 Applications concerned with document scanning and archiving, and other automatic file gene ...

最新文章

  1. 分享10个效率实用工具,让你更优雅地使用windows
  2. Nature微生物多样性驱动了细菌以CRISPR系统抵御噬菌体
  3. Python使用matplotlib可视化条形图(bar plot)、自定义在条形图的顶部添加数值标签(Bar Chart)
  4. 【Groovy】闭包 Closure ( 自定义闭包参数 | 自定义单个闭包参数 | 自定义多个闭包参数 | 闭包参数默认值指定 )
  5. Oversea company interview question.
  6. photoshop的页面制作练习1
  7. android分钟倒计时,Android 三十分钟倒计时
  8. php和mysql两种不同方式的分割字符串和类型转换
  9. Sql Server设置用户只能查看并访问特定数据库
  10. 克隆CentOS设置网络连接
  11. 使用JavaScript在Canvas上画出一片星空
  12. Winform--处理MDI父窗体与子窗体的交互
  13. 执行Hexo d报错Spawn failed, 以及OpenSSL SSL_read: Connection was reset, errno 10054
  14. Neo4j简单构建知识图谱实例
  15. 阿里云网站备案时变更备案的问题解决总结 满满干货
  16. 操作系统面试题(史上最全面试题,精心整理100家互联网企业,面试必过)
  17. STM32分别实现温湿度的采集和OLED显示屏显示数据
  18. webstorm 安装激活破解方法
  19. 开传奇大概需要什么条件
  20. 德州仪器(TI)希望小学在江西萍乡市湘东区腊市镇正式落成并启用

热门文章

  1. kotlin 初始化数组
  2. Question | 网站被黑客扫描撞库该怎么应对防范?
  3. Python的MySQLdb模块安装
  4. MinGW安装和使用基础教程
  5. corosync和pacemaker实现httpd和mysql双集群
  6. [SIR数据集实验][2]Java类数据集相应工具使用的小经验
  7. .NET 6 攻略大全(三)
  8. 有关[Http持久连接]的一切,卷给你看
  9. 手把手教你学Dapr - 5. 状态管理
  10. NET问答: 如何检查一个 string 是否为有效的 url 格式?