为 Azure IoT 中心安装和配置 Connected Field Service

按照本文中的步骤设置 Connected Field Service 以与 Azure IoT 中心结合使用。

备注

时序见解将在 2025 年 3 月之后弃用。 Connected Field Service 正在转换为 Azure 数据资源管理器。 有关转换的更多信息即将发布。

先决条件

小费

包含类似如下图标的图像: 可以展开以显示更多详细信息。 选择图像以展开它。 要关闭它,请按 Esc 键。

根据 ARM 模板部署 Connected Field Service 和 Azure 资源

使用 Azure 资源管理(Azure 资源管理器)模板部署 Azure IoT 中心并将其连接到 Field Service 环境。

  1. https://github.com/microsoft/Dynamics-365-Connected-Field-Service-Deployment 页面上选择部署到 Azure

  2. 选择您的 Azure 订阅。

  3. 选择资源组或创建一个资源组。

  4. 将区域设置为 Field Service 环境所在的相同区域。

    用于为 Connected Field Service 部署 IoT 中心的 Azure 资源管理器模板的屏幕截图。

  5. 输入组织的唯一名称和 Field Service 环境的组织 URL。

  6. 选择要部署的可选资源。

    • 选择部署模拟器(可选)使用示例数据测试和验证 IoT 场景。
    • 选择 Azure 时序见解(可选)启用设备读数和摘要磁贴的可视化。
    • 选择部署 Power BI 的 SQL Server(可选),输入 SQL Server 和凭据,在 Power BI 中创建您自己的报告。
  7. 选择查看 + 创建

在继续之前确保部署已完成。

创建 IoT 提供程序实例

  1. 登录到 Dynamics 365,打开 Connected Field Service 应用。

  2. 在 Connected Field Service 中,转到设置区域。

  3. 选择提供程序,然后选择新建

  4. 输入以下信息:

    包含示例数据的新 IoT 中心提供程序实例的屏幕截图。

    • 名称:部署 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
  5. 选择保存

您现在需要更新新提供程序实例的设置。

  1. 设置区域中,选择 IoT 设置>IoT 提供程序设置

    “IoT 设置”页面的屏幕截图。

  2. 默认 IoT 提供程序,选择您创建的 IoT 提供程序实例。

  3. 选择保存并关闭

  4. 对于后面的步骤,在 msdyn_iotproviderinstance 表中找到 IoT 提供程序实例行,并复制 GUID。

设置 IoT 终结点

对于此步骤,您需要知道部署到资源组的服务总线命名空间的主机名。

  1. 下载 Power Platform CLI 并安装它。

  2. 打开 CLI,使用命令 pac tool prt 启动 Plugin Registration Tool (PRT)

  3. 在 PRT 窗口中,选择创建新连接

  4. 显示可用组织的列表中,选择 Office 365

  5. 选择显示可用组织列表,然后选择显示高级

  6. 选择您的 Field Service 环境的区域,输入您的 Field Service 凭据,然后选择登录

    如果您有权访问多个 Dynamics 365 组织,选择您想要使用的组织的名称。

现在您需要更新 IoT 消息服务终结点。

  1. 连接到组织后,找到并选择 IoT 消息服务终结点。

  2. 选择更新

  3. 对于命名空间地址,输入插件注册工具中服务总线命名空间的主机名,前缀为 sb://;例如,sb://myServiceBusNamespace.servicebus.windows.net

  4. 在服务总线命名空间资源中,转到队列,并查找名称以 -crm 结尾的队列。 复制全名,并在插件注册工具中将其输入为主题名称

  5. 对于消息格式,请选择 XML

  6. 在服务总线命名空间资源中,转到共享访问策略>RootManageSharedAccessKey

  7. 复制名称并将其粘贴到 SaS 密钥名称中。

  8. 复制主密钥,将其粘贴到 SAS 密钥中。

  9. 选择保存

    服务终结点注册页面的屏幕截图。

授权 Azure 应用连接

  1. 登录到您的 Azure 帐户,然后转到 Azure 门户

  2. 转到资源组,找到最近将 IoT 中心部署到的资源组。

  3. 选择和编辑 API 连接资源 commondataservice

  4. 常规下,选择编辑 API 连接,然后选择授权

  5. 使用登录 Connected Field Service 环境时的 Dynamics 365 凭据登录。

    它们可能与您用于登录 Azure 门户的凭据不同。

  6. 选择保存

更新 devicerules.json

部署到资源组的流分析作业引用名为 devicerules.json 的文件。 此文件定义在您使用可选设备模拟器时创建 IoT 警报的规则。

要使用此规则,上载 devicerules.json 文件。 您必须重现准确的目录结构才能使示例警报正常工作。

  1. GitHub 存储库下载 devicerules.json 文件。

  2. 在 Azure 管理门户中打开资源组,然后选择部署到资源组的存储帐户。

  3. 选择容器,然后创建一个名为 devicerules 的容器。

  4. 打开新容器 devicerules,选择上载

  5. 浏览到 devicerules.json 并选择它。

  6. 展开高级部分。 在上载到文件夹字段中,输入 2016-05-30,然后选择上载

  7. 打开新文件夹 2016-05-30,选择上载

  8. 浏览到 devicerules.json 并选择它。

  9. 展开高级部分。 在上载到文件夹字段中,输入 22-40,然后选择上载

启动 Azure 流分析作业

  1. Azure 门户中,转到资源组,找到您将 IoT 中心部署到的资源组。

  2. 选择每个流分析作业,从概览选项卡中选择启动

恭喜! 现在可以在 Azure IoT 中心与 Dynamics 365 之间传递数据以使用 Connected Field Service。

设置 Azure 时序见解连接

使用 Azure 时序见解创建可视化效果。 对于此步骤,您需要知道您的 Azure 租户 ID

  1. 在 Dynamics 365 中,打开 Connected Field Service 应用。

  2. 启动浏览器开发人员工具并转到控制台。

  3. 在控制台中键入或粘贴以下脚本并运行它。 将 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);
}
);
  1. 再次运行脚本。 这一次,将 Key 替换为 TSI_PLUGIN_CLIENT_APPLICATION_ID,将 Value 替换为您作为先决条件创建的时序见解应用注册中的应用程序客户端 ID。

  2. 再运行一次脚本。 这一次,将 Key 替换为 TSI_PLUGIN_CLIENT_SECRET,将 Value 替换为您作为先决条件创建的时序见解应用注册中的客户端密码。

  3. 使用您之前创建的 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 策略的主密钥。

获取访问密钥

  1. 登录到您的 Azure 帐户,然后转到 Azure 门户

  2. 转到资源组,找到最近将 IoT 中心部署到的资源组。

  3. 选择 IoT 中心。

  4. 选择共享访问策略,然后复制 iothubowner 的主密钥。

    Iothubowner 的 Azure IoT 中心资源共享访问策略的屏幕截图,突出显示主密钥。

获取模拟器 URL

  1. 在部署的 IoT 中心的 Azure 门户资源组中,选择以 Simulator 开头的应用服务资源类型,然后复制右上角的 URL。

  2. 将此 URL 粘贴到浏览器地址栏中,并加载页面。

  3. 选择连接

  4. 输入 IoT 中心资源中的主机名,并输入 iothubowner 作为策略名称。 在密钥字段中,粘贴您之前复制的主密钥。

    Azure 中“配置连接”窗口的屏幕截图。

  5. 确保连接状态已连接,然后关闭连接窗口。

使用模拟器发送测试命令。 例如,选择温度并将其提高到超过 70 度。 如果温度超过 70 度,对模拟器进行预编程以创建 IoT 警报。

后续步骤