다음을 통해 공유


고객으로서의 센서 통합

단계에 따라 센서 파트너와 통합하여 파트너가 Data Manager for Agriculture 인스턴스에 데이터를 푸시할 수 있도록 합니다.

각 센서 파트너에는 Data Manager for Agriculture 플랫폼에서 만들기 및 게시된 자체 다중 테넌트 Microsoft Entra 앱이 있습니다. 플랫폼에서 기본적으로 지원되는 센서 파트너는 Davis Instruments(sensorPartnerId: DavisInstruments)입니다.

온보드 센서 파트너 사용을 시작하려면 센서 파트너가 App Registrations에 표시되기 시작하도록 동의해야 합니다. 따라야 할 단계:

  1. "전역 관리자" 또는 "권한 있는 역할 관리자" 자격 증명을 사용하여 Azure Portal에 로그인합니다.

  2. Davis Instruments의 경우 이 링크를 클릭하여 동의합니다.

  3. 권한 검토 페이지에서 Microsoft Entra 앱은 최소한의 "사용자 프로필 읽기" 권한을 요청합니다. 이 권한 수준은 Data Manager for Agriculture와의 센서 통합에 충분합니다.

  4. "동의" 단추를 클릭하여 관리자 동의를 부여합니다.

  5. 이제 App Registrations 페이지의 모든 애플리케이션 탭에서 Davis Instruments WeatherLink Data Manager for Agriculture Connector을 찾습니다(이미지에서 일반 파트너로 설명됨).

    Screenshot showing the partners message.

  6. 액세스를 제공하려는 특정 파트너 앱의 애플리케이션(클라이언트) ID를 복사합니다.

2단계: 파트너 앱에 역할 할당 추가

다음 단계는 Azure Portal에서 역할을 할당하여 센서 파트너 애플리케이션에 권한을 부여하는 것입니다. Data Manager for Agriculture는 Azure RBAC를 사용하여 권한 부여 요청을 관리합니다.

Azure Portal에 로그인하고 Data Manager for Agriculture 리소스를 만든 리소스 그룹으로 이동합니다.

참고 항목

리소스 그룹 탭 내에서 만들어진 Data Manager for Agriculture 리소스를 찾을 수 없는 경우 숨겨진 형식 표시 확인란을 선택해야 합니다.

이미지에 표시된 대로 옵션 창의 왼쪽에 IAM(Identity Access Management) 메뉴 옵션이 있습니다.

Screenshot showing role assignment.

추가 > 역할 할당 추가를 클릭하면 포털 오른쪽에 창이 열리고 드롭다운에서 역할을 선택합니다.

  • AgFood 플랫폼 센서 파트너 기여자 - 센서에 특정한 CRU(만들기, 읽기, 업데이트) 작업의 모든 권한을 가집니다.

역할 할당을 완료하려면 다음 단계를 수행합니다.

  1. 언급된 역할을 선택합니다.

  2. 액세스 할당 섹션에서 사용자, 그룹 또는 서비스 주체를 선택합니다.

  3. 선택 섹션에 센서 파트너 앱 이름 또는 ID를 붙여넣습니다(이미지 참조).

  4. 저장을 클릭하여 역할을 할당합니다.

Screenshot showing app selection for authorization.

이 단계에서는 센서 파트너 앱에 Azure Data Manager for Agriculture 리소스에 대한 액세스 권한(할당된 역할 기반)이 부여되었는지 확인합니다.

3단계: 센서 통합 사용

  1. 호출을 시작하기 전에 센서 통합을 사용하도록 설정해야 합니다. 이 단계에서는 Data Manager for Agriculture 인스턴스의 센서 통합에 필요한 내부 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)의 모든 단일 고객은 Data Manager for Agriculture 리소스에서 만들어진 고유한 통합 ID가 필요합니다.

평가해야 하는 두 가지 경로가 있습니다.

  • 센서 파트너가 제공하는 센서의 소유자인 경우 센서 파트너가 있는 계정에 대해 하나의 통합 개체(ID)만 만듭니다.

  • 최종 사용자(즉, 농부/소매업자/농업 경제학자)가 센서를 소유하고 있는 경우 각 최종 사용자가 센서 파트너와 함께 자신의 계정을 가지고 있으므로 각 최종 사용자에 대해 고유한 통합 개체(ID)를 만듭니다.

API 엔드포인트: PATCH /sensor-partners/{sensorPartnerId}/integrations/{integrationID}

동의 링크를 요청하는 섹션은 센서 파트너 통합 흐름의 일부입니다. 이 동의 링크는 센서 파트너가 고객이 유효한 서비스 사용자인지 유효성을 검사하는 방법입니다. 센서 통합은 동의 키와 연결됩니다.

Microsoft의 센서 파트너인 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와 리소스는 Data Manager for Agriculture 시스템에 이미 존재합니다. 이러한 연결을 통해 플랫폼으로서 리소스 및 당사자 차원의 공통 기하 도형을 중심으로 데이터 과학 모델을 빌드할 수 있습니다. 모든 데이터 원본(위성, 날씨, 농장 운영)은 파티 및 리소스에 연결되어 있습니다. 센서 수준별로 이 매핑 개체를 설정하면 센서 데이터의 이점을 얻을 수 있는 모든 농업 사용 사례에 전원이 공급됩니다.

API 엔드포인트: PATCH /sensor-mappings/{sensorMappingId}

7단계: 센서 이벤트 사용

SensorEvents 컬렉션을 사용하여 SensorEvents_List API를 호출하고 센서에서 푸시한 데이터를 사용합니다. 다음 정보를 제공해야 합니다.

  • sensorId(데이터를 표시하려는 센서 지정)
  • sensorPartnerId(이 데이터를 푸시하는 센서 파트너 지정)
  • startDateTime 및 endDateTime(시간 범위 필터는 데이터가 요청된 타임라인으로 분할되도록 보장)

API 엔드포인트: GET /sensor-events

다음 단계

  • 여기에서 API를 테스트합니다.