Condividi tramite


Inserire i dati delle previsioni meteo in Azure Data Manager per l'agricoltura

Il meteo è un servizio altamente democratizzato nell'industria agricola. Azure Data Manager for Agriculture offre ai clienti la possibilità di collaborare con il provider meteo preferito.

Azure Data Manager per l'agricoltura fornisce dati meteo correnti e di previsione tramite un approccio indipendente dal provider e basato su estensioni. È possibile collaborare con un provider di propria scelta seguendo i passaggi per la scrittura di un'estensione meteo.

Panoramica della progettazione

Poiché Azure Data Manager per l'agricoltura fornisce dati meteo tramite un approccio indipendente dal provider, non è necessario avere familiarità con le API di un provider. È invece possibile usare le stesse API di Azure Data Manager per l'agricoltura indipendentemente dal provider.

Ecco alcune note sul comportamento delle API indipendenti dal provider:

  • È possibile richiedere dati meteo per un massimo di 50 località in una singola chiamata.
  • I dati di previsione non superano i 15 minuti. I dati per le condizioni correnti non superano i 10 minuti.
  • Dopo aver effettuato la chiamata iniziale per una posizione, i dati vengono memorizzati nella cache per la durata (TTL) definita.
  • Per mantenere calda la cache, è possibile usare il apiFreshnessTimeInMinutes parametro nell'estensione meteo. La piattaforma mantiene un processo in esecuzione per la quantità di tempo definita e aggiorna la cache. Il valore predefinito è zero, il che significa che la cache non viene mantenuta ad accesso frequente per impostazione predefinita.

Le sezioni seguenti forniscono i comandi per recuperare i dati meteo e inserirli in Azure Data Manager per l'agricoltura.

Passaggio 1: Installare l'estensione meteo

Per installare l'estensione, eseguire il comando seguente usando lo strumento ARMClient di Azure Resource Manager.

Sostituire tutti i valori tra parentesi angolari (<>) con i rispettivi valori di ambiente. L'ID di estensione attualmente supportato è IBM.TWC.

armclient PUT /subscriptions/<subscriptionid>/resourceGroups/<resource-group-name>/providers/Microsoft.AgFoodPlatform/farmBeats/<farmbeats-resource-name>/extensions/<extensionid>?api-version=2020-05-12-preview '{}'

Ecco l'output di esempio per il comando di installazione:

{
      "id": "/subscriptions/<subscriptionid>/resourceGroups/<resource-group-name>/providers/Microsoft.AgFoodPlatform/farmBeats/<farmbeats-resource-name>/extensions/<extensionid>",
      "type": "Microsoft.AgFoodPlatform/farmBeats/extensions",
      "systemData": {
        "createdBy": "testuser@abc.com",
        "createdByType": "User",`        
        "createdAt": "2021-03-17T12:36:51Z",
        "lastModifiedBy": "testuser@abc.com",
        "lastModifiedByType": "User",
        "lastModifiedAt": "2021-03-17T12:36:51Z"
      },
      "properties": {
        "category": "Weather",
        "installedExtensionVersion": "1.0",
        "extensionAuthLink": "https://www.<provider.com/integration/",
        "extensionApiDocsLink": "https://docs.<provider>.com/documentation/Weather_Data/Historical_and_Climatological_Weather/latest#_daily_historical_ag_weather_v1_0"
      },
      "eTag": "92003c91-0000-0700-0000-804752e00000",
      "name": "<provider>"
}

Dopo aver completato l'installazione dell'estensione, è possibile inserire i dati meteo.

Per aggiornare , aggiornare apiFreshnessTimeInMinutesl'estensione usando il comando di PowerShell seguente. Sostituire tutti i valori racchiusi tra parentesi angolari con i rispettivi valori di ambiente.

armclient put /subscriptions/<subscriptionid>/resourceGroups/<resource-group-name>/providers/Microsoft.AgFoodPlatform/farmBeats/<farmbeats-resource-name>/<extensionid>?api-version=2021-09-01-preview '{"additionalApiProperties": {""15-day-daily-forecast"": {"apiFreshnessTimeInMinutes": <time>}, ""currents-on-demand"": {"apiFreshnessTimeInMinutes": <time>},""15-day-hourly-forecast"":{"apiFreshnessTimeInMinutes": <time>}}}'

Il comando di aggiornamento precedente unisce le operazioni patch. Aggiorna il tempo di aggiornamento solo per l'API menzionata nel comando e mantiene i valori del tempo di aggiornamento per altre API come in precedenza.

Ecco l'output di esempio per il comando update:

{
  "id": "/subscriptions/<subscriptionid>/resourceGroups/<resource-group-name>/providers/Microsoft.AgFoodPlatform/farmBeats/<farmbeats-resource-name>/extensions/<extensionid>",
  "type": "Microsoft.AgFoodPlatform/farmBeats/extensions",
  "systemData": {
    "createdBy": "50e74af5-3b8f-4a8c-9521-4f506b4e0c16",
    "createdByType": "User",
    "createdAt": "2022-10-10T21:28:05Z",
    "lastModifiedBy": "50e74af5-3b8f-4a8c-9521-4f506b4e0c16",
    "lastModifiedByType": "User",
    "lastModifiedAt": "2022-11-08T13:10:17Z"
  },
  "properties": {
    "extensionId": "provider",
    "extensionCategory": "Weather",
    "installedExtensionVersion": "2.0",
    "extensionApiDocsLink": "https://go.microsoft.com/fwlink/?linkid=2192974",
    "additionalApiProperties": {
      "15-day-daily-forecast": {
        "apiFreshnessTimeInMinutes": 1600
      },
      "currents-on-demand": {
        "apiFreshnessTimeInMinutes": 1600
      },
       "15-day-hourly-forecast": {
        "apiFreshnessTimeInMinutes": 1600
      }
    }
  },
  "eTag": "ea0261d0-0000-0700-0000-636a55390000",
  "name": "provider"
}

Passaggio 2: Recuperare i dati meteo

Dopo aver recuperato le credenziali necessarie per accedere alle API, è necessario chiamare l'API Dati meteo per recuperare i dati meteo.