Интеграция датчика в качестве клиента

Выполните действия по интеграции с партнером датчика, чтобы позволить партнеру начать отправку данных в экземпляр Data Manager для сельского хозяйства.

Каждый партнер датчика имеет собственное мультитенантное приложение Microsoft Entra, созданное и опубликованное на платформе Data Manager для сельского хозяйства. Партнер датчика, поддерживаемый по умолчанию на платформе, — Дэвис Инструмент (sensorPartnerId: DavisInstruments).

Чтобы начать использовать встроенные партнеры датчика, необходимо дать согласие партнеру датчика, чтобы они начали отображаться в App Registrations. Действия, которые необходимо выполнить, выполните следующие действия.

  1. Войдите в систему, чтобы портал Azure с помощью учетных данных Global Администратор istrator или "Привилегированная роль Администратор istrator".

  2. Для Дэвис инструментов щелкните эту ссылку , чтобы предоставить согласие.

  3. На странице проверки разрешений приложение Microsoft Entra запрашивает минимальное разрешение на чтение профиля пользователя. Этот уровень разрешений достаточно для интеграции датчиков с Data Manager для сельского хозяйства.

  4. Нажмите кнопку "Принять", чтобы предоставить согласие администратора.

  5. Теперь найдите Davis Instruments WeatherLink Data Manager for Agriculture Connector вкладку "Все приложения" на App Registrations странице (иллюстрируется универсальным партнером на изображении).

    Screenshot showing the partners message.

  6. Скопируйте идентификатор приложения (клиента) для конкретного партнерского приложения, к которому требуется предоставить доступ.

Шаг 2. Добавление назначения ролей в партнерское приложение

Следующим шагом является назначение ролей в портал Azure для авторизации в партнерском приложении датчика. Диспетчер данных для сельского хозяйства использует Azure RBAC для управления запросами авторизации.

Войдите в портал Azure и перейдите в группу ресурсов, где вы создали ресурс Data Manager для сельского хозяйства.

Примечание.

На вкладке группы ресурсов, если не найти созданный ресурс Data Manager для сельского хозяйства, необходимо включить скрытые типы проверка box.

В левой части области параметров отображается пункт меню IAM (управление доступом к удостоверениям), как показано на рисунке:

Screenshot showing role assignment.

Нажмите кнопку "Добавить > назначение ролей", это действие открывает область справа от портала, выберите роль в раскрывающемся списке:

  • Участник партнера датчика платформы AgFood — имеет все привилегии в операциях CRU (создание, чтение, обновление), относящиеся к датчикам.

Чтобы завершить назначение роли, сделайте следующее:

  1. Выберите упоминание упоминание роль.

  2. Выберите пользователя, группу или субъект-службу в разделе "Назначение доступа к разделу".

  3. Вставьте имя или идентификатор приложения-партнера датчика в раздел Select (как показано на изображении).

  4. Чтобы присвоить роль, щелкните Сохранить.

Screenshot showing app selection for authorization.

Этот шаг гарантирует, что партнерское приложение датчика было предоставлено доступ (на основе назначенной роли) в Azure Data Manager для сельскохозяйственных ресурсов.

Шаг 3. Включение интеграции датчиков

  1. Прежде чем инициировать вызовы, необходимо включить интеграцию датчиков. На этом шаге необходимо подготовить внутренние ресурсы Azure для интеграции датчиков в экземпляре Data Manager для сельского хозяйства. Для этого выполните следующую команду 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 Используйте коллекцию и вызов в API SensorPartnerIntegrations_CreateOrUpdate для создания объекта интеграции для данного партнера датчика. Каждому клиенту партнера датчика (например, Дэвису) нужен уникальный идентификатор интеграции, созданный в ресурсе Data Manager для сельского хозяйства.

Необходимо оценить два разных пути.

  • Если вы являетесь владельцами датчиков, предоставляемых партнерами датчика, создайте только один объект интеграции (идентификатор) для вашей учетной записи с партнером датчика.

  • Если конечные пользователи (то есть фермеры, розничные торговцы или агрономисты) принадлежат датчикам, создайте уникальный объект интеграции (ID) для каждого конечного пользователя, так как у каждого конечного пользователя есть собственные учетные записи с партнером датчика.

Конечная точка API: PATCH /sensor-partners/{sensorPartnerId}/integrations/{integrationID}

Раздел, запрашивающий ссылку согласия, является частью потока интеграции партнера датчика. Эта ссылка на согласие позволяет партнерам датчика проверить, является ли клиент допустимым пользователем службы. Интеграция датчика привязана к ключу согласия.

Наш партнер датчика Дэвис Инструмент использует этот пользовательский интерфейс для включения настройки и запроса на ссылку согласия.

Партнеры датчика вызывают конечную точку check-consent API для проверки действительности. Чтобы создать ссылку на согласие, необходимо использовать SensorPartnerIntegrations_GenerateConsentLink API и указать идентификатор интеграции, созданный на шаге (3). В ответе вы получите строку с именем consentLink. Скопируйте эту строку и предоставьте ее партнеру датчика для дальнейшей проверки. Если вы используете датчики из Дэвис Инструмент, следуйте инструкциям на этой странице.

Конечная точка API: PATCH /sensor-partners/{sensorPartnerId}/integrations/{integrationId}/: generate-consent-link

Этот шаг помечает завершение подключения партнера датчика с точки зрения клиента. , получите все необходимые сведения для вызова конечных точек API для создания модели датчика, модели устройства, датчиков и устройств. Теперь партнеры могут отправлять события датчика с помощью строка подключения, созданного для каждого идентификатора датчика.

Последний шаг — начать использование событий датчика. Перед использованием событий необходимо создать сопоставление каждого идентификатора датчика с определенным идентификатором и ресурсом (поле, сезонное поле).

Шаг 6. Создание сопоставления датчиков

Используйте коллекцию SensorMappings , вызовите SensorMappings_CreateOrUpdate API для создания сопоставления для каждого датчика. Сопоставление не является ничего, кроме связывания идентификатора датчика с определенным Идентификатором PartyID и ресурсом(полем, сезонным полем и т. д.). PartyID и ресурсы уже присутствуют в системе Диспетчера данных для сельского хозяйства. Эта связь гарантирует, что в качестве платформы можно создавать модели обработки и анализа данных вокруг общей геометрии ресурса и стороннего измерения. Каждый источник данных (спутник, погода, операции фермы) привязан к стороннему и ресурсу. При установке этого объекта сопоставления на уровне датчика вы можете использовать все варианты использования агрономии, чтобы воспользоваться данными датчика.

Конечная точка API: PATCH /sensor-mappings/{sensorMappingId}

Шаг 7. Использование событий датчика

Используйте коллекцию SensorEvents для вызова SensorEvents_List API и использования данных, отправленных датчиками. Вам потребуется указать следующие сведения

  • sensorId (указывает, для какого датчика должны отображаться данные)
  • sensorPartnerId (указывает, какой партнер датчика отправляет эти данные)
  • startDateTime и endDateTime (фильтры диапазона времени обеспечивают срез данных по запрошенным временная шкала)

Конечная точка API: GET /sensor-events

Следующие шаги