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

作为客户的传感器集成

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

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

若要开始使用载入的传感器合作伙伴,需要同意传感器合作伙伴,以便它们开始显示 App Registrations。 要遵循的步骤:

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

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

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

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

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

    Screenshot showing the partners message.

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

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

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

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

注意

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

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

Screenshot showing role assignment.

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

  • AgFood Platform 传感器合作伙伴参与者 - 在 CRU(创建、读取、更新)操作中具有特定于传感器的所有权限。

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

  1. 选择提及的角色。

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

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

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

Screenshot showing app selection for authorization.

此步骤可确保传感器合作伙伴应用已授予对 Azure Data Manager for Agriculture 资源的访问权限(基于分配的角色)。

步骤 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

后续步骤