Aracılığıyla paylaş


Tarım için Azure Data Manager'da hava durumu tahmin verilerini alma

Hava durumu, tarım sektöründe son derece demokratikleştirilmiş bir hizmettir. Tarım için Azure Data Manager, müşterilere tercih ettikleri hava durumu sağlayıcısıyla çalışma olanağı sunar.

Tarım için Azure Data Manager, uzantı tabanlı ve sağlayıcıdan bağımsız bir yaklaşımla güncel ve tahmin hava durumu verileri sağlar. Hava durumu uzantısı yazma adımlarını izleyerek istediğiniz bir sağlayıcıyla çalışabilirsiniz.

Tasarıma genel bakış

Tarım için Azure Data Manager, sağlayıcıdan bağımsız bir yaklaşımla hava durumu verileri sağladığından, bir sağlayıcının API'lerini tanımanız gerekmez. Bunun yerine, sağlayıcıdan bağımsız olarak aynı Tarım API'leri için Azure Veri Yöneticisi'ni kullanabilirsiniz.

Sağlayıcıdan bağımsız API'lerin davranışı hakkında bazı notlar aşağıdadır:

  • Tek bir çağrıda en fazla 50 konum için hava durumu verileri isteyebilirsiniz.
  • Tahmin verileri 15 dakikadan eski değildir. Geçerli koşulların verileri 10 dakikadan eski değildir.
  • Bir konum için ilk çağrı yapıldıktan sonra veriler, tanımlanan yaşam süresi (TTL) için önbelleğe alınır.
  • Önbelleği sıcak tutmak için hava durumu uzantısında parametresini apiFreshnessTimeInMinutes kullanabilirsiniz. Platform, bir işi tanımlanan süre boyunca çalışır durumda tutar ve önbelleği güncelleştirir. Varsayılan değer sıfırdır, yani önbellek varsayılan olarak sıcak tutulmaz.

Aşağıdaki bölümlerde hava durumu verilerini getirme ve Tarım için Azure Data Manager'a alma komutları sağlanır.

1. Adım: Hava durumu uzantısını yükleme

Uzantıyı yüklemek için Azure Resource Manager ARMClient aracını kullanarak aşağıdaki komutu çalıştırın.

Köşeli ayraçlar (<>) içindeki tüm değerleri ilgili ortam değerlerinizle değiştirin. Şu anda desteklenen uzantı kimliği şeklindedir 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 '{}'

Yükleme komutu için örnek çıktı aşağıda verilmişti:

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

Uzantıyı yüklemeyi tamamladıktan sonra hava durumu verilerini alabilirsiniz.

'yi güncelleştirmek apiFreshnessTimeInMinutesistiyorsanız, aşağıdaki PowerShell komutunu kullanarak uzantıyı güncelleştirin. Köşeli ayraç içindeki tüm değerleri ilgili ortam değerlerinizle değiştirin.

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

Önceki güncelleştirme komutu düzeltme eki işlemlerini birleştirir. Yalnızca komutta bahsedilen API için tazelik süresini güncelleştirir ve diğer API'lerin önceki gibi güncellik süresi değerlerini korur.

Update komutu için örnek çıktı aşağıda verilmişti:

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

2. Adım: Hava durumu verilerini getirme

API'lere erişmek için gereken kimlik bilgilerini aldıktan sonra hava durumu verilerini getirmek için Hava Durumu Verileri API'sini çağırmanız gerekir.