センサー パートナーと統合する手順に従って、パートナーが Data Manager for Agriculture インスタンスへのデータのプッシュを開始できるようにします。
手順 1: センサー パートナー アプリを特定し、同意する
各センサー パートナーには、独自のマルチテナント Microsoft Entra アプリが作成され、Data Manager for Agriculture プラットフォームで公開されています。 プラットフォームで既定でサポートされているセンサー パートナーは、Davis Instruments (sensorPartnerId: DavisInstruments
) です。
オンボードされたセンサーパートナーの使用を開始するには、それらのセンサーパートナーがApp Registrations
に表示されるように、センサーパートナーへの同意を提供する必要があります。 次の手順に従います。
"グローバル管理者" または "特権ロール管理者" の資格情報を使用して Azure portal にログインします。
デイビス・インスツルメンツの場合は、この リンク をクリックして同意してください。
アクセス許可のレビュー ページで、Microsoft Entra アプリは最小限の "ユーザー プロファイルの読み取り" アクセス許可を要求します。 このアクセス許可レベルは、Data Manager for Agriculture とのセンサー統合に十分です。
[同意する] ボタンをクリックして、管理者の同意を付与します。
次に、
App Registrations
ページの[すべてのアプリケーション]タブでDavis Instruments WeatherLink Data Manager for Agriculture Connector
を探します(画像では一般的なパートナーとなっています)。アクセス権を付与する特定のパートナー アプリのアプリケーション (クライアント) ID をコピーします。
手順 2: パートナー アプリにロールの割り当てを追加する
次の手順では、Azure portal でロールを割り当てて、センサー パートナー アプリケーションに承認を提供します。 Data Manager for Agriculture では、Azure RBAC を使用して承認要求を管理します。
Azure portal にログインし、Data Manager for Agriculture リソースを作成したリソース グループに移動します。
注
リソース グループ タブ内で、作成された農業用データ マネージャー リソースが見つからない場合は、[ 非表示の種類の表示 ] チェック ボックスをオンにする必要があります。
次の図に示すように、オプション ウィンドウの左側に IAM (Identity Access Management) メニュー オプションがあります。
[ロールの割り当ての追加] >クリックすると、ポータルの右側にウィンドウが開き、ドロップダウンからロールを選択します。
- AgFood Platform Sensor パートナー共同作成者 - センサーに固有の CRU (作成、読み取り、更新) 操作のすべての特権を持ちます。
ロールの割り当てを完了するには、次の手順を実行します。
前述のロールを選択します。
[アクセスの割り当て先] セクションで、[ユーザー、グループ、サービス プリンシパル] を選択します。
センサー パートナーのアプリ名または ID を [選択] セクションに貼り付けます (画像に示すように)。
[ 保存] を クリックしてロールを割り当てます。
この手順により、センサー パートナー アプリに Azure Data Manager for Agriculture Resource への (割り当てられたロールに基づいて) アクセス権が付与されます。
手順 3: センサー統合を有効にする
呼び出しを開始する前に、センサー統合を有効にする必要があります。 この手順では、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" }
ジョブの完了には数分かかる場合があります。 ジョブの状態を把握するには、次の armclient コマンドを使用します。
armclient get /subscriptions/<subscription-id>/resourceGroups/<resource-group-name> /providers/Microsoft.AgFoodPlatform/farmBeats/<farmbeats-instance-name>?api-version=2021-09-01-preview
完了した状態を確認するには、 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}
手順 5: 同意リンクを生成する
同意リンクを要求するセクションは、センサー パートナー統合フローの一部です。 この同意リンクは、センサー パートナーが顧客がサービスの有効なユーザーであるかどうかを検証するための方法です。 センサーの統合は同意キーに関連付けられています。
センサー パートナー の 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 のテストはここで行います。