次の方法で共有


顧客としてのセンサー統合

センサー パートナーと統合する手順に従って、パートナーが Data Manager for Agriculture インスタンスへのデータのプッシュを開始できるようにします。

各センサー パートナーには、独自のマルチテナント Microsoft Entra アプリが作成され、Data Manager for Agriculture プラットフォームで公開されています。 プラットフォームで既定でサポートされているセンサー パートナーは、Davis Instruments (sensorPartnerId: DavisInstruments) です。

オンボードされたセンサーパートナーの使用を開始するには、それらのセンサーパートナーがApp Registrationsに表示されるように、センサーパートナーへの同意を提供する必要があります。 次の手順に従います。

  1. "グローバル管理者" または "特権ロール管理者" の資格情報を使用して Azure portal にログインします。

  2. デイビス・インスツルメンツの場合は、この リンク をクリックして同意してください。

  3. アクセス許可のレビュー ページで、Microsoft Entra アプリは最小限の "ユーザー プロファイルの読み取り" アクセス許可を要求します。 このアクセス許可レベルは、Data Manager for Agriculture とのセンサー統合に十分です。

  4. [同意する] ボタンをクリックして、管理者の同意を付与します。

  5. 次に、App Registrations ページの[すべてのアプリケーション]タブでDavis Instruments WeatherLink Data Manager for Agriculture Connectorを探します(画像では一般的なパートナーとなっています)。

    パートナー メッセージを示すスクリーンショット。

  6. アクセス権を付与する特定のパートナー アプリのアプリケーション (クライアント) ID をコピーします。

手順 2: パートナー アプリにロールの割り当てを追加する

次の手順では、Azure portal でロールを割り当てて、センサー パートナー アプリケーションに承認を提供します。 Data Manager for Agriculture では、Azure RBAC を使用して承認要求を管理します。

Azure portal にログインし、Data Manager for Agriculture リソースを作成したリソース グループに移動します。

リソース グループ タブ内で、作成された農業用データ マネージャー リソースが見つからない場合は、[ 非表示の種類の表示 ] チェック ボックスをオンにする必要があります。

次の図に示すように、オプション ウィンドウの左側に IAM (Identity Access Management) メニュー オプションがあります。

ロールの割り当てを示すスクリーンショット。

[ロールの割り当ての追加] >クリックすると、ポータルの右側にウィンドウが開き、ドロップダウンからロールを選択します。

  • AgFood Platform Sensor パートナー共同作成者 - センサーに固有の CRU (作成、読み取り、更新) 操作のすべての特権を持ちます。

ロールの割り当てを完了するには、次の手順を実行します。

  1. 前述のロールを選択します。

  2. [アクセスの割り当て先] セクションで、[ユーザー、グループ、サービス プリンシパル] を選択します。

  3. センサー パートナーのアプリ名または ID を [選択] セクションに貼り付けます (画像に示すように)。

  4. [ 保存] を クリックしてロールを割り当てます。

認可するアプリの選択を示すスクリーンショット。

この手順により、センサー パートナー アプリに Azure Data Manager for Agriculture Resource への (割り当てられたロールに基づいて) アクセス権が付与されます。

手順 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 を呼び出して、特定のセンサー パートナーの統合オブジェクトを作成します。 センサー パートナー (例: デイビス) のすべての顧客には、Data Manager for Agriculture リソースで作成された一意の統合 ID が必要です。

評価する必要があるパスは 2 つあります。

  • センサー パートナーによって提供されるセンサーの所有者である場合は、センサー パートナーとアカウントの統合オブジェクト (ID) を 1 つだけ作成します。

  • エンド ユーザー (つまり、Farmers/Retailers/Agronomists) がセンサーを所有している場合は、各エンド ユーザーがセンサー パートナーとの独自のアカウントを持っているため、エンド ユーザーごとに一意の統合オブジェクト (ID) を作成します。

API エンドポイント: PATCH /sensor-partners/{sensorPartnerId}/integrations/{integrationID}

同意リンクを要求するセクションは、センサー パートナー統合フローの一部です。 この同意リンクは、センサー パートナーが顧客がサービスの有効なユーザーであるかどうかを検証するための方法です。 センサーの統合は同意キーに関連付けられています。

センサー パートナー の Davis Instruments は、この UI を使用して、設定を有効にし、同意リンクを要求します。

センサー パートナーは、 check-consent API エンドポイントを呼び出して有効性を確認します。 同意リンクを生成するには、 SensorPartnerIntegrations_GenerateConsentLink API を使用し、手順 (3) から作成した統合 ID を指定する必要があります。 応答として、consentLink という文字列を取得します。 この文字列をコピーし、センサー パートナーに渡してさらに検証します。 デイビスインスツルメンツのセンサーを使用している場合は、この ページの指示に従ってください。

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 のテストはここで行います。