使用 Visual Studio 工具开发 Stream Analytics Edge 作业

在本文中,您将学习如何使用 Visual Studio 的 Stream Analytics 工具来编写、调试和创建 Stream Analytics Edge 作业。 创建并测试完作业后,你进入 Azure 门户将其部署到你的设备。

开发Edge职位的前提条件

完成本文步骤需要以下先决条件:

  1. 安装 Visual Studio 2019Visual Studio 2015Visual Studio 2013 Update 4。 Stream Analytics 工具支持企业版(终极版/高级版)、专业版和社区版,但不支持 Express 版。

  2. 按照 安装说明 安装适用于 Visual Studio 的流分析工具。

创建流分析 Edge 项目

创建一个包含你职位定义的Edge项目。

  1. 在Visual Studio中,选择“新建>文件>Project。 转到左侧的模板列表,然后展开Azure 流分析>Stream Analytics Edge>Azure 流分析 Edge Application。 输入项目名称、地点和解决方案名称,然后选择 确定

    在 Visual Studio 中创建 Azure 流分析 Edge 应用的新 Project 对话框截图。

  2. Visual Studio创建项目后,进入解决方案资源管理器查看文件夹层级结构。

    解决方案资源管理器 截图显示 Visual Studio 中 Stream Analytics Edge 项目的文件夹层级结构。

选择正确的订阅

将 Visual Studio 连接到你想创建工作的 Azure 订阅。

  1. 从“Visual Studio视图”菜单中,选择“服务器资源管理器”。

  2. 选择并按住(或右键单击)Azure,选择“连接到Azure订阅”,然后使用Azure帐户登录。

定义输入

配置作业从中读取流式事件的 Edge Hub 输入。

  1. 解决方案资源管理器 中,展开 Inputs 节点。 你会看到一个名为 EdgeInput.json的输入。 打开它查看设置。

  2. 将源类型设置为 数据流。 然后将源设置为 Edge 中心、事件序列化格式设置为 Json,并将编码设置为 UTF8。 可选地,可以重命名 输入别名,但在本例中保持原样。 如果你重命名输入别名,请使用你定义查询时指定的名称。 选择“ 保存” 以保存设置。 Visual Studio 中 Stream Analytics Edge Hub 输入配置设置的截图。

定义输出

配置作业写入结果的Edge Hub输出。

  1. 解决方案资源管理器 中,展开 Outputs 节点。 你会看到一个名为 EdgeOutput.json的输出。 打开它查看设置。

  2. 将 Sink 设置为 Edge Hub,将事件序列化格式设置为 JSON,将编码设置为 UTF8,并将格式设置为 数组。 可选地,可以重命名 输出别名,但在这个示例中保持原样。 如果你重命名输出别名,请使用你定义查询时指定的名称。 选择“ 保存” 以保存设置。 Visual Studio 中 Stream Analytics Edge Hub 输出配置设置的截图。

查看不受支持的操作

部署在 Stream Analytics IoT Edge 环境中的 Stream Analytics 作业支持 Stream Analytics 查询语言参考 中的大部分内容。 但是,流分析 Edge 作业不支持以下操作:

  1. 划分
  2. 按超限时间戳
  3. JavaScript UDF
  4. 用户定义聚合(UDA)
  5. GetMetadataPropertyValue
  6. 在单一步骤中使用超过 14 个聚合

当你在门户中创建 Stream Analytics Edge 作业时,如果使用了不受支持的运算符,编译器会自动发出警告。

定义转换查询

在 Visual Studio 中,在查询编辑器(文件)script.asaql中定义以下变换查询。

SELECT * INTO EdgeOutput
FROM EdgeInput 

在本地测试作业

要在本地测试查询,上传样本数据。 要获取样本数据,请从GitHub仓库下载注册数据并保存到本地电脑。

  1. 要上传样本数据,选择并长按(或右键点击) EdgeInput.json 文件,然后选择 添加本地输入

  2. 在弹窗中, 浏览 本地路径的样本数据,选择 保存

    Visual Studio 上传示例数据的本地输入配置截图。

  3. Visual Studio会自动在输入文件夹中添加一个名为 local_EdgeInput.json 的文件。

  4. 你可以选择本地运行,也可以提交到 Azure。 若要测试查询,请选择“ 在本地运行”。

    显示 Stream Analytics 作业运行选项中 Visual Studio 里的“本地运行”的屏幕截图。

  5. 命令提示符窗口显示作业的状态。 当作业成功运行后,会在你的项目文件夹路径 Visual Studio 2015\Projects\MyASAEdgejob\MyASAEdgejob\ASALocalRun\2018-02-23-11-31-42 下创建一个类似于 2018-02-23-11-31-42 的文件夹。 进入文件夹路径查看本地文件夹的结果。

    还可以登录到Azure门户,并验证作业是否已创建。

    Stream Analytics 工作结果文件夹的截图,显示 Visual Studio 中的本地运行输出。

将作业提交到Azure

测试查询后,将作业发布到你的 Azure 订阅中。

  1. 在提交工作到Azure之前,先连接你的Azure订阅。 打开服务器资源管理器,选择并按住(或右键单击)Azure,选择“连接到Azure订阅”,然后登录到Azure订阅。

  2. 要提交工作到 Azure,请进入查询编辑器,选择提交到 Azure

  3. 此时会打开一个弹出窗口。 选择更新现有的流分析 Edge 作业或创建新的作业。 当你更新一个已有的作业时,它会替换所有的作业配置。 在这种情况下,你发布了一个新职位。 选择创建新的 Azure 流分析 职位,输入你的职位名称,如 MyASAEdgeJob,选择所需的订阅资源组位置,然后选择提交

    从Visual Studio提交Stream Analytics Edge任务到Azure的对话框截图。

    你现在拥有了一个Stream Analytics Edge的职位。 想了解如何将其部署到您的设备上,请参阅“在 IoT Edge 上运行作业”。

管理作业

在服务器资源管理器中管理作业状态和作业图。

  1. 服务器资源管理器中的流分析下,展开你部署流分析 Edge 作业所在的订阅和资源组。 你会看到状态为已创建MyASAEdgejob。 展开作业节点,然后打开它以查看该作业。

    服务器资源管理器显示Stream Analytics Edge作业管理选项的截图。

  2. 在工作视图窗口中,你可以刷新任务,删除它,然后在 Azure 门户中打开。

    这是Visual Studio中职位视图窗口的截图,显示职位图和其他选项。