Compartilhar via


Ingerir dados de previsão meteorológica no Gerenciador de Dados do Microsoft Azure para Agricultura

O clima é um serviço altamente democratizado na indústria agrícola. O Gerenciador de Dados do Microsoft Azure para Agricultura oferece aos clientes a capacidade de trabalhar com o fornecedor meteorológico da sua escolha.

O Gerenciador de Dados do Microsoft Azure para Agricultura fornece dados meteorológicos atuais e previstos através de uma abordagem baseada em extensões e independente de fornecedor. Você pode trabalhar com um provedor de sua escolha seguindo as etapas para escrever uma extensão climática.

Visão geral do design

Como o Gerenciador de Dados do Microsoft Azure para Agricultura fornece dados meteorológicos através de uma abordagem independente do fornecedor, não é necessário estar familiarizado com as APIs de um fornecedor. Em vez disso, pode utilizar as mesmas APIs do Gerenciador de Dados do Microsoft Azure para Agricultura, independentemente do fornecedor.

Aqui estão algumas notas sobre o comportamento de APIs independentes de provedor:

  • Você pode solicitar dados meteorológicos de até 50 locais em uma única chamada.
  • Os dados de previsão não têm mais de 15 minutos. Os dados das condições atuais não têm mais de 10 minutos.
  • Após a chamada inicial ser feita para um local, os dados são armazenados em cache pelo tempo de vida definido (TTL).
  • Para manter o cache aquecido, você pode usar o parâmetro apiFreshnessTimeInMinutes na extensão climática. A plataforma mantém um trabalho em execução pelo período de tempo definido e atualiza o cache. O valor padrão é zero, o que significa que o cache não é mantido aquecido por padrão.

As secções seguintes fornecem os comandos para obter dados meteorológicos e ingeri-los no Gerenciador de Dados do Microsoft Azure para Agricultura.

Etapa 1: instale a extensão climática

Para instalar a extensão, execute o comando a seguir usando a ferramenta ARMClient do Azure Resource Manager.

Substitua todos os valores entre colchetes angulares (<>) pelos respectivos valores de ambiente. O ID da extensão atualmente compatível é 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 '{}'

Aqui está um exemplo de saída para o comando de instalação:

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

Depois de terminar de instalar a extensão, você poderá ingerir dados meteorológicos.

Se quiser atualizar apiFreshnessTimeInMinutes, atualize a extensão usando o seguinte comando do PowerShell. Substitua todos os valores entre colchetes angulares pelos respectivos valores de 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>}}}'

O comando de atualização anterior mescla operações de patch. Ele atualiza o tempo de atualização apenas para a API mencionada no comando e mantém os valores de tempo de atualização para outras APIs como eram antes.

Aqui está um exemplo de saída para o comando de atualização:

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

Etapa 2: buscar dados meteorológicos

Depois de obter as credenciais necessárias para acessar as APIs, você precisa chamar a API de dados meteorológicos para buscar dados meteorológicos.