为 Azure IoT 中心安装和配置 Connected Field Service
按照本文中的步骤设置 Connected Field Service 以与 Azure IoT 中心结合使用。
- 步骤 1:根据 ARM 模板部署 Connected Field Service 和 Azure 资源
- 步骤 2:创建 IoT 提供程序实例
- 步骤 3:设置 IoT 终结点
- 步骤 4:授权 Azure 应用连接
- 步骤 5:更新 devicerules.json
- 步骤 6:启动 Azure 流分析作业
- 步骤 7:设置 Azure 时序见解连接
- 步骤 8:(可选)设置模拟器
备注
时序见解将在 2025 年 3 月之后弃用。 Connected Field Service 正在转换为 Azure 数据资源管理器。 有关转换的更多信息即将发布。
先决条件
您具有系统管理员和 IoT 管理员安全角色。
您有有效的 Azure 订阅,包含创建资源和服务的权限。
您已在 Azure 门户中为 Azure 时序见解创建了应用注册,并具有应用程序(客户端)ID 和对象 ID。 添加客户端密码并记录此值。 在此过程中您会有多次需要这些值。
小费
包含类似如下图标的图像: 可以展开以显示更多详细信息。 选择图像以展开它。 要关闭它,请按 Esc 键。
根据 ARM 模板部署 Connected Field Service 和 Azure 资源
使用 Azure 资源管理(Azure 资源管理器)模板部署 Azure IoT 中心并将其连接到 Field Service 环境。
在 https://github.com/microsoft/Dynamics-365-Connected-Field-Service-Deployment 页面上选择部署到 Azure。
选择您的 Azure 订阅。
选择资源组或创建一个资源组。
将区域设置为 Field Service 环境所在的相同区域。
输入组织的唯一名称和 Field Service 环境的组织 URL。
选择要部署的可选资源。
- 选择部署模拟器(可选)使用示例数据测试和验证 IoT 场景。
- 选择 Azure 时序见解(可选)启用设备读数和摘要磁贴的可视化。
- 选择部署 Power BI 的 SQL Server(可选),输入 SQL Server 和凭据,在 Power BI 中创建您自己的报告。
选择查看 + 创建。
在继续之前确保部署已完成。
创建 IoT 提供程序实例
登录到 Dynamics 365,打开 Connected Field Service 应用。
在 Connected Field Service 中,转到设置区域。
选择提供程序,然后选择新建。
输入以下信息:
- 名称:部署 IoT 资源的 Azure 中的资源组的名称
- IoT 提供程序:IoT 中心的 IoT 提供程序
- 提供程序实例 ID:您部署到 Azure 资源组的 IoT 中心资源的名称
- URL:Azure 门户中资源组概述的 URL;例如,
https://portal.azure.com/[tenant_id]/subscriptions/[subscription_id]/resourceGroups/[resource_group_name]/overview
。
选择保存。
您现在需要更新新提供程序实例的设置。
在设置区域中,选择 IoT 设置>IoT 提供程序设置。
为默认 IoT 提供程序,选择您创建的 IoT 提供程序实例。
选择保存并关闭。
对于后面的步骤,在
msdyn_iotproviderinstance
表中找到 IoT 提供程序实例行,并复制 GUID。
设置 IoT 终结点
对于此步骤,您需要知道部署到资源组的服务总线命名空间的主机名。
下载 Power Platform CLI 并安装它。
打开 CLI,使用命令
pac tool prt
启动 Plugin Registration Tool (PRT)。在 PRT 窗口中,选择创建新连接。
在显示可用组织的列表中,选择 Office 365。
选择显示可用组织列表,然后选择显示高级。
选择您的 Field Service 环境的区域,输入您的 Field Service 凭据,然后选择登录。
如果您有权访问多个 Dynamics 365 组织,选择您想要使用的组织的名称。
现在您需要更新 IoT 消息服务终结点。
连接到组织后,找到并选择 IoT 消息服务终结点。
选择更新。
对于命名空间地址,输入插件注册工具中服务总线命名空间的主机名,前缀为
sb://
;例如,sb://myServiceBusNamespace.servicebus.windows.net
。在服务总线命名空间资源中,转到队列,并查找名称以
-crm
结尾的队列。 复制全名,并在插件注册工具中将其输入为主题名称。对于消息格式,请选择 XML。
在服务总线命名空间资源中,转到共享访问策略>RootManageSharedAccessKey。
复制名称并将其粘贴到 SaS 密钥名称中。
复制主密钥,将其粘贴到 SAS 密钥中。
选择保存。
授权 Azure 应用连接
登录到您的 Azure 帐户,然后转到 Azure 门户。
转到资源组,找到最近将 IoT 中心部署到的资源组。
选择和编辑 API 连接资源 commondataservice。
在常规下,选择编辑 API 连接,然后选择授权。
使用登录 Connected Field Service 环境时的 Dynamics 365 凭据登录。
它们可能与您用于登录 Azure 门户的凭据不同。
选择保存。
更新 devicerules.json
部署到资源组的流分析作业引用名为 devicerules.json
的文件。 此文件定义在您使用可选设备模拟器时创建 IoT 警报的规则。
要使用此规则,上载 devicerules.json
文件。 您必须重现准确的目录结构才能使示例警报正常工作。
从 GitHub 存储库下载
devicerules.json
文件。在 Azure 管理门户中打开资源组,然后选择部署到资源组的存储帐户。
选择容器,然后创建一个名为
devicerules
的容器。打开新容器
devicerules
,选择上载。浏览到
devicerules.json
并选择它。展开高级部分。 在上载到文件夹字段中,输入 2016-05-30,然后选择上载。
打开新文件夹
2016-05-30
,选择上载。浏览到
devicerules.json
并选择它。展开高级部分。 在上载到文件夹字段中,输入 22-40,然后选择上载。
启动 Azure 流分析作业
在 Azure 门户中,转到资源组,找到您将 IoT 中心部署到的资源组。
选择每个流分析作业,从概览选项卡中选择启动。
恭喜! 现在可以在 Azure IoT 中心与 Dynamics 365 之间传递数据以使用 Connected Field Service。
设置 Azure 时序见解连接
使用 Azure 时序见解创建可视化效果。 对于此步骤,您需要知道您的 Azure 租户 ID。
在 Dynamics 365 中,打开 Connected Field Service 应用。
启动浏览器开发人员工具并转到控制台。
在控制台中键入或粘贴以下脚本并运行它。 将
Value
参数替换为您的 Azure 租户 ID。
var req = {};
req.getMetadata = function () {
return {
boundParameter: null,
parameterTypes: {
"Key": {
"typeName": "Edm.String",
"structuralProperty": 1
},
"Value": {
"typeName": "Edm.String",
"structuralProperty": 1
},
},
operationType: 0,
operationName: "msdyn_IoTSetConfiguration"
};
};
req["Key"]="TSI_PLUGIN_AZURE_TENANT_ID";
req["Value"]="REPLACE";
Xrm.WebApi.online.execute(req).then(
function (data) {
console.log("Success Response Status: " + data.status);
},
function (error) {
console.log("Error: " + error.message);
}
);
再次运行脚本。 这一次,将
Key
替换为TSI_PLUGIN_CLIENT_APPLICATION_ID
,将Value
替换为您作为先决条件创建的时序见解应用注册中的应用程序客户端 ID。再运行一次脚本。 这一次,将
Key
替换为TSI_PLUGIN_CLIENT_SECRET
,将Value
替换为您作为先决条件创建的时序见解应用注册中的客户端密码。使用您之前创建的 IoT 提供程序实例的 msdyn_iotproviderinstance 表中的时序见解 URL 和 IoT 提供程序实例行的 GUID 运行以下脚本。
var data = {"msdyn_timeseriesinsightsurl": "Enter Data Access FQDN found on Time Series Insights environment overview"};
Xrm.WebApi.updateRecord("msdyn_iotproviderinstance", "Copy the value for msdyn_iotproviderinstanceid from the json object returned with the API call https://[your-environment-name].crm.dynamics.com/api/data/v9.2/msdyn_iotproviderinstances", data);
(可选)设置模拟器
模拟器允许您测试 Connected Field Service,而无需连接物理硬件。 模拟 IoT 设备和数据帮助您了解帮助将 IoT 数据转换为工作订单的系统的各个部分。
对于此步骤,您需要模拟器 URL 和 iothubowner
策略的主密钥。
获取访问密钥
登录到您的 Azure 帐户,然后转到 Azure 门户。
转到资源组,找到最近将 IoT 中心部署到的资源组。
选择 IoT 中心。
选择共享访问策略,然后复制 iothubowner 的主密钥。
获取模拟器 URL
在部署的 IoT 中心的 Azure 门户资源组中,选择以
Simulator
开头的应用服务资源类型,然后复制右上角的 URL。将此 URL 粘贴到浏览器地址栏中,并加载页面。
选择连接。
输入 IoT 中心资源中的主机名,并输入 iothubowner 作为策略名称。 在密钥字段中,粘贴您之前复制的主密钥。
确保连接状态为已连接,然后关闭连接窗口。
使用模拟器发送测试命令。 例如,选择温度并将其提高到超过 70 度。 如果温度超过 70 度,对模拟器进行预编程以创建 IoT 警报。