Condividi tramite


Integrazione dei sensori come cliente

Seguire i passaggi per l'integrazione con un partner sensore per consentire al partner di iniziare a eseguire il push dei dati nell'istanza di Data Manager for Agriculture.

Ogni partner del sensore ha un'app Microsoft Entra multi-tenant creata e pubblicata nella piattaforma Data Manager for Agriculture. Il partner del sensore supportato per impostazione predefinita nella piattaforma è Davis Instruments (sensorPartnerId: DavisInstruments).

Per iniziare a usare i partner del sensore a bordo, è necessario fornire il consenso al partner del sensore in modo che inizino a essere visualizzati in App Registrations. La procedura da seguire:

  1. Accedere a portale di Azure usando le credenziali "Global Amministrazione istrator" o "Privileged Role Amministrazione istrator".

  2. Per Davis Instruments, fare clic su questo collegamento per fornire il consenso.

  3. Nella pagina di revisione delle autorizzazioni l'app Microsoft Entra richiede l'autorizzazione minima di "lettura profilo utente". Questo livello di autorizzazione è sufficiente per l'integrazione dei sensori con Data Manager per l'agricoltura.

  4. Fare clic sul pulsante "Accetta" per concedere il consenso amministratore.

  5. Davis Instruments WeatherLink Data Manager for Agriculture Connector Cercare ora nella scheda Tutte le applicazioni nella App Registrations pagina (illustrata con un partner generico nell'immagine).

    Screenshot showing the partners message.

  6. Copiare l'ID applicazione (client) per l'app partner specifica a cui si vuole fornire l'accesso.

Passaggio 2: Aggiungere un'assegnazione di ruolo all'app partner

Il passaggio successivo consiste nell'assegnare ruoli nel portale di Azure per fornire l'autorizzazione all'applicazione partner del sensore. Gestione dati per l'agricoltura usa il controllo degli accessi in base al ruolo di Azure per gestire le richieste di autorizzazione.

Accedere a portale di Azure e passare al gruppo di risorse in cui è stata creata la risorsa Data Manager for Agriculture.

Nota

All'interno della scheda gruppo di risorse, se non si trova la risorsa Data Manager for Agriculture creata, è necessario abilitare la casella di controllo Mostra tipi nascosti.

Si trova l'opzione di menu IAM (Identity Access Management) sul lato sinistro del riquadro delle opzioni, come illustrato nell'immagine:

Screenshot showing role assignment.

Fare clic su Aggiungi aggiungi > assegnazione di ruolo. Questa azione apre un riquadro sul lato destro del portale, scegliere il ruolo dall'elenco a discesa:

  • Collaboratore partner sensore Ag Food Platform: dispone di tutti i privilegi nelle operazioni CRU (Create, Read, Update) specifiche dei sensori.

Per completare l'assegnazione di ruolo, seguire questa procedura:

  1. Scegliere il ruolo indicato.

  2. Scegliere Utente, gruppo o entità servizio nella sezione Assegna accesso a .

  3. Incollare il nome o l'ID dell'app partner del sensore nella sezione Seleziona (come illustrato nell'immagine).

  4. Fare clic su Salva per assegnare un ruolo.

Screenshot showing app selection for authorization.

Questo passaggio garantisce che all'app partner del sensore sia stato concesso l'accesso (in base al ruolo assegnato) ad Azure Data Manager per la risorsa agricoltura.

Passaggio 3: Abilitare l'integrazione dei sensori

  1. È necessario abilitare l'integrazione del sensore prima di avviare le chiamate. Questo passaggio effettua il provisioning delle risorse interne di Azure necessarie per l'integrazione dei sensori nell'istanza di Data Manager per l'agricoltura. A tale scopo, eseguire il comando armclient seguente.

    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'}}}"
    

    Output di esempio:

    {
      "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. Il completamento del processo può richiedere alcuni minuti. Per conoscere lo stato del processo, è possibile usare il comando armclient seguente:

    armclient get /subscriptions/<subscription-id>/resourceGroups/<resource-group-name> /providers/Microsoft.AgFoodPlatform/farmBeats/<farmbeats-instance-name>?api-version=2021-09-01-preview
    
  3. Per verificare lo stato completato, esaminare l'attributo provisioningState . Lo stato deve cambiare in "Succeeded" da "Creating" (Creazione) nel passaggio precedente.

    Output di esempio:

    {
      "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>"
    }
    

Al termine del passaggio di integrazione del sensore, è ora possibile creare oggetti di integrazione del sensore.

Passaggio 4: Creare un oggetto di integrazione

Usare la SensorPartnerIntegrations raccolta e chiamare l'API SensorPartnerIntegrations_CreateOrUpdate per creare un oggetto di integrazione per un determinato partner sensore. Ogni singolo cliente di un partner sensore (ad esempio: Davis) necessita di un ID di integrazione univoco creato nella risorsa Data Manager for Agriculture.

È necessario valutare due percorsi diversi:

  • Se si sono i proprietari dei sensori forniti dai partner del sensore, creare un solo oggetto di integrazione (ID) per l'account con il partner del sensore.

  • Se gli utenti finali (ovvero Farmers/Retailers/Agronomists) possiedono i sensori, creare un oggetto di integrazione univoco (ID) per ogni utente finale perché ogni utente finale ha i propri account con il partner sensore.

Endpoint API: PATCH /sensor-partners/{sensorPartnerId}/integrations/{integrationID}

Una sezione che richiede il collegamento di consenso fa parte del flusso di integrazione del partner del sensore. Questo collegamento di consenso consente ai partner del sensore di convalidare se il cliente è un utente valido del servizio. L'integrazione del sensore è associata alla chiave di consenso.

Il nostro partner del sensore Davis Instruments usa questa interfaccia utente per abilitare la configurazione e richiedere il collegamento di consenso.

I partner del sensore chiamano l'endpoint check-consent API per verificare la validità. Per generare un collegamento di consenso, è necessario usare l'API SensorPartnerIntegrations_GenerateConsentLink e specificare l'ID di integrazione creato dal passaggio (3). Come risposta, si ottiene una stringa denominata consentLink. Copiare questa stringa e specificarla al partner del sensore per un'ulteriore convalida. Se si usano sensori di Davis Instruments, seguire le istruzioni in questa pagina.

Endpoint API: PATCH /sensor-partners/{sensorPartnerId}/integrations/{integrationId}/: generate-consent-link

Questo passaggio contrassegna il completamento dell'onboarding del partner sensore dal punto di vista del cliente. , ottenere tutte le informazioni necessarie per chiamare gli endpoint API per creare il modello sensore, il modello di dispositivo, i sensori e i dispositivi. I partner sono ora in grado di eseguire il push degli eventi del sensore usando il stringa di connessione generato per ogni ID sensore.

Il passaggio finale consiste nell'iniziare a usare gli eventi del sensore. Prima di utilizzare gli eventi, è necessario creare un mapping di ogni ID sensore a un ID e una risorsa di entità specifici (campo, campo stagionale).

Passaggio 6: Creare il mapping dei sensori

Usare la SensorMappings raccolta, chiamare l'API SensorMappings_CreateOrUpdate per creare il mapping per ogni sensore. Il mapping non è altro che l'associazione di un ID sensore a uno specifico PartyID e a una risorsa(campo, campo stagionale e così via). PartyID e risorse sono già presenti nel sistema Data Manager for Agriculture. Questa associazione garantisce che come piattaforma si ottengano modelli di data science intorno a una geometria comune della dimensione delle risorse e delle parti. Ogni origine dati (satellite, meteo, operazioni farm) è associata a una risorsa e a una parte. Quando si stabilisce questo oggetto di mapping a livello di sensore, si alimentano tutti i casi d'uso del diagramma per trarre vantaggio dai dati dei sensori.

Endpoint API: PATCH /sensor-mappings/{sensorMappingId}

Passaggio 7: Utilizzare gli eventi del sensore

Usare la SensorEvents raccolta per chiamare l'API SensorEvents_List e usare i dati inseriti dai sensori. È necessario fornire le informazioni seguenti

  • sensorId (specifica per quale sensore si desidera visualizzare i dati)
  • sensorPartnerId (specifica il partner del sensore che esegue il push di questi dati)
  • startDateTime & endDateTime (i filtri dell'intervallo di tempo assicurano che i dati vengano sezionati nella sequenza temporale richiesta)

Endpoint API: GET /sensor-events

Passaggi successivi