你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

作为客户的传感器集成

按照步骤与传感器合作伙伴集成,以便合作伙伴可以开始将数据推送到农业数据管理器实例。

每个传感器合作伙伴都有自己的多租户Microsoft Entra应用,该应用已在农业数据管理平台上创建并发布。 默认情况下,平台上支持的传感器合作伙伴是 Davis Instruments(sensorPartnerId: ) DavisInstruments

若要开始使用已经接入的传感器合作伙伴,您需要给予同意,以便他们能够开始在 App Registrations 显示。 要遵循的步骤:

  1. 使用“全局管理员”或“特权角色管理员”凭据登录到 Azure 门户

  2. 对于 Davis Instruments,请单击此 链接 以提供同意。

  3. 在权限评审页上,Microsoft Entra 应用请求最低“读取用户配置文件”权限。 此权限级别足以使传感器与用于农业的数据管理器集成。

  4. 单击“接受”按钮授予管理员同意。

  5. 现在,在App Registrations页面的“所有应用程序”选项卡下查找Davis Instruments WeatherLink Data Manager for Agriculture Connector(图像中展示了一个通用合作伙伴)。

    显示合作伙伴消息的屏幕截图。

  6. 复制要提供访问权限的特定合作伙伴应用的应用程序(客户端)ID。

步骤 2:向合作伙伴应用添加角色分配

下一步是在 Azure 门户中分配角色,以便向传感器合作伙伴应用程序提供授权。 用于农业的数据管理器使用 Azure RBAC 来管理授权请求。

登录到 Azure 门户 ,导航到在其中创建了农业数据管理器资源的资源组。

注释

在“资源组”选项卡中,如果未找到为农业资源创建的数据管理器,则需要启用 “显示隐藏类型 ”复选框。

可以在选项窗格左侧找到 IAM(标识访问管理)菜单选项,如下图所示:

显示角色分配的屏幕截图。

单击添加角色分配>,此操作将在门户右侧打开一个窗格,然后从下拉列表中选择角色:

  • AgFood Platform 传感器合作伙伴贡献者 - 拥有CRU(创建、读取、更新)作业中特定于传感器的所有权限。

若要完成角色分配,请执行以下步骤:

  1. 选择提到的角色。

  2. 在“将访问权限分配给”部分中选择“用户、组或服务主体”。

  3. 将传感器合作伙伴应用名称或 ID 粘贴 到“选择”部分(如图所示)。

  4. 单击“ 保存 ”以分配角色。

屏幕截图显示要授权的应用选择内容。

此步骤确保了传感器合作伙伴应用已获得适用于农业的 Azure 数据管理器资源的访问权限(基于分配的角色)。

步骤 3:启用传感器集成

  1. 在启动调用之前,需要启用传感器集成。 此步骤预配了用于农业的数据管理器实例中的传感器集成所需的内部 Azure 资源。 可以通过运行以下 armclient 命令来执行此作。

    armclient patch /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.AgFoodPlatform/farmBeats/<farmbeats-instance-name>?api-version=2021-09-01-preview "{properties:{sensorIntegration:{enabled:'true'}}}"
    

    示例输出:

    {
      "id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.AgFoodPlatform/farmBeats/<farmbeats-instance-name>",
      "type": "Microsoft.AgFoodPlatform/farmBeats",
      "sku": {
        "name": "A0"
      },
      "systemData": {
        "createdBy": "<customer-id>",
        "createdByType": "User",
        "createdAt": "2022-03-11T03:36:32Z",
        "lastModifiedBy": "<customer-id>",
        "lastModifiedByType": "User",
        "lastModifiedAt": "2022-03-11T03:40:06Z"
      },
      "properties": {
        "instanceUri": "https://<farmbeats-instance-name>.farmbeats.azure.net/",
        "provisioningState": "Succeeded",
        "sensorIntegration": {
          "enabled": "True",
          "provisioningState": "**Creating**"
        },
        "publicNetworkAccess": "Enabled"
      },
      "___location": "eastus",
      "name": "myfarmbeats"
    }
    
  2. 作业可能需要几分钟才能完成。 若要了解作业的状态,可以使用以下 armclient 命令:

    armclient get /subscriptions/<subscription-id>/resourceGroups/<resource-group-name> /providers/Microsoft.AgFoodPlatform/farmBeats/<farmbeats-instance-name>?api-version=2021-09-01-preview
    
  3. 若要验证已完成状态,请查看 provisioningState 属性。 状态需要从前面的步骤中的“创建”更改为“成功”。

    示例输出:

    {
      "id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.AgFoodPlatform/farmBeats/<farmbeats-instance-name>",
      "type": "Microsoft.AgFoodPlatform/farmBeats",
      "sku": {
        "name": "A0"
      },
      "systemData": {
        "createdBy": "<customer-id>",
        "createdByType": "User",
        "createdAt": "2022-03-11T03:36:32Z",
        "lastModifiedBy": "<customer-id>",
        "lastModifiedByType": "User",
        "lastModifiedAt": "2022-03-11T03:40:06Z"
      },
      "properties": {
        "instanceUri": "https://<customer-host-name>.farmbeats.azure.net/",
        "provisioningState": "Succeeded",
        "sensorIntegration": {
          "enabled": "True",
          "provisioningState": "**Succeeded**"
        },
        "publicNetworkAccess": "Enabled"
      },
      "tags": {
        "usage": "<sensor-partner-id>"
      },
      "___location": "eastus",
      "name": "<customer-id>"
    }
    

完成传感器集成步骤后,现在可以创建传感器集成对象。

步骤 4:创建集成对象

使用 SensorPartnerIntegrations 集合并调用 SensorPartnerIntegrations_CreateOrUpdate API,为给定的传感器合作伙伴创建集成对象。 传感器合作伙伴(例如:Davis)的每个客户都需要在其农业数据管理器资源中创建的唯一集成 ID。

需要评估两种不同的路径:

  • 如果你是传感器合作伙伴提供的传感器的所有者,则只需为帐户和传感器合作伙伴创建一个集成对象 (ID)。

  • 如果最终用户(即 Farmers/Retailers/Agronomists)拥有传感器,则为每个最终用户创建一个唯一的集成对象(ID),因为每个最终用户都有自己的传感器合作伙伴帐户。

API 终结点:PATCH /sensor-partners/{sensorPartnerId}/integrations/{integrationID}

请求同意链接的部分是传感器合作伙伴集成流的一部分。 此同意链接是传感器合作伙伴验证客户是否为服务的有效用户的方法。 传感器集成与许可密钥相关联。

我们的传感器合作伙伴 Davis Instruments 使用此 UI 来启用设置和请求同意链接。

传感器合作伙伴调用 check-consent API 终结点以验证有效性。 若要生成同意链接,需要使用 SensorPartnerIntegrations_GenerateConsentLink API 并提供从步骤(3)创建的集成 ID。 作为响应,你将获得名为 consentLink 的字符串。 复制此字符串并将其提供给传感器合作伙伴进行进一步验证。 如果使用的是 Davis Instruments 的传感器, 请按照此页面上的说明进行作。

API 终结点:PATCH /sensor-partners/{sensorPartnerId}/integrations/{integrationId}/: generate-consent-link

此步骤从客户的角度来看,标志着传感器合作伙伴载入的完成。 获取所有必要的信息,以便调用您的 API 终结点来创建传感器模型、设备模型、传感器和设备。 合作伙伴现在可以使用为每个传感器 ID 生成的连接字符串推送传感器事件。

最后一步是开始处理传感器事件。 在使用事件之前,需要创建每个传感器 ID 到特定群 ID 和资源(字段、季节性字段)的映射。

步骤 6:创建传感器映射

使用 SensorMappings 集合,调用 SensorMappings_CreateOrUpdate API 为每个传感器创建映射。 映射只不过是将传感器 ID 与特定 PartyID 和资源(字段、季节性字段等)相关联。 PartyID 和资源已存在于农业数据管理器系统中。 此关联可确保平台能够围绕资源和参与方维度的通用几何结构来构建数据科学模型。 每个数据源(卫星、天气、农场运营)都与参与方和资源相关联。 当你在每个传感器级别上建立此映射对象时,你可以为所有农学用例提供支持,以受益于传感器数据。

API 终结点:PATCH /sensor-mappings/{sensorMappingId}

步骤 7:使用传感器事件

通过 SensorEvents 集合调用 SensorEvents_List API,以处理传感器推送的数据。 需要提供以下信息

  • sensorId(指定要显示数据的传感器)
  • sensorPartnerId(指定哪个传感器合作伙伴正在推送此数据)
  • startDateTime 和 endDateTime (时间范围筛选器确保数据切片到请求的时间线)

API 终结点:GET /sensor-events

后续步骤

  • 此处测试我们的 API。