Mata in väderprognosdata i Azure Data Manager for Agriculture

Väder är en mycket demokratiserad tjänst inom jordbruksindustrin. Azure Data Manager for Agriculture ger kunderna möjlighet att arbeta med valfri väderleverantör.

Azure Data Manager for Agriculture tillhandahåller aktuella och prognostiserade väderdata via en tilläggsbaserad och leverantörsoberoende metod. Du kan arbeta med valfri leverantör genom att följa stegen för att skriva ett vädertillägg.

Designöversikt

Eftersom Azure Data Manager for Agriculture tillhandahåller väderdata via en leverantörsoberoende metod behöver du inte vara bekant med en leverantörs API:er. I stället kan du använda samma Api:er för Azure Data Manager för jordbruk oavsett provider.

Här följer några kommentarer om beteendet hos provideragnostiska API:er:

  • Du kan begära väderdata för upp till 50 platser i ett enda samtal.
  • Prognosdata är inte äldre än 15 minuter. Data för aktuella förhållanden är inte äldre än 10 minuter.
  • När det första anropet görs för en plats cachelagras data för den definierade tidsåtgången (TTL).
  • Om du vill hålla cachen varm kan du använda parametern apiFreshnessTimeInMinutes i vädertillägget. Plattformen håller ett jobb igång under den angivna tiden och uppdaterar cacheminnet. Standardvärdet är noll, vilket innebär att cacheminnet inte hålls varmt som standard.

Följande avsnitt innehåller kommandon för att hämta väderdata och mata in dem i Azure Data Manager for Agriculture.

Steg 1: Installera vädertillägget

Installera tillägget genom att köra följande kommando med verktyget Azure Resource Manager ARMClient.

Ersätt alla värden inom vinkelparenteser (<>) med dina respektive miljövärden. Det tilläggs-ID som stöds för närvarande är 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 '{}'

Här är exempelutdata för installationskommandot:

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

När du har installerat tillägget kan du mata in väderdata.

Om du vill uppdatera apiFreshnessTimeInMinutesuppdaterar du tillägget med hjälp av följande PowerShell-kommando. Ersätt alla värden inom vinkelparenteser med dina respektive miljövärden.

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

Föregående uppdateringskommando sammanfogar korrigeringsåtgärder. Den uppdaterar färskhetstiden för endast api:et som nämns i kommandot och behåller tidsvärdena för färskhet för andra API:er som de var tidigare.

Här är exempelutdata för uppdateringskommandot:

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

Steg 2: Hämta väderdata

När du har fått de autentiseringsuppgifter som krävs för att komma åt API:erna måste du anropa API:et väderdata för att hämta väderdata.