Integração de sensores como cliente
Siga as etapas para integrar com um parceiro de sensor para permitir que o parceiro comece a enviar os dados para sua instância do Data Manager for Agriculture.
Etapa 1: Identificar o aplicativo parceiro do sensor e fornecer consentimento
Cada parceiro de sensor tem seu próprio aplicativo Microsoft Entra multilocatário criado e publicado na plataforma Data Manager for Agriculture. O parceiro de sensor suportado por padrão na plataforma é a Davis Instruments (sensorPartnerId: DavisInstruments
).
Para começar a usar os parceiros de sensor integrados, você precisa dar consentimento ao parceiro de sensor para que ele comece a aparecer no App Registrations
. Os passos a seguir:
Faça logon no portal do Azure usando as credenciais "Administrador Global" ou "Administrador de Função Privilegiada".
Para Davis Instruments, clique neste link para fornecer consentimento.
Na página de revisão de permissões, o aplicativo Microsoft Entra solicita a permissão mínima de "ler perfil de usuário". Esse nível de permissão é suficiente para a integração do sensor com o Data Manager for Agriculture.
Clique no botão "Aceitar" para conceder o consentimento do administrador.
Agora, procure
Davis Instruments WeatherLink Data Manager for Agriculture Connector
na guia Todos os aplicativos na página (ilustrada com um parceiro genérico naApp Registrations
imagem).Copie a ID do aplicativo (cliente) para o aplicativo parceiro específico ao qual você deseja fornecer acesso.
Etapa 2: adicionar atribuição de função ao aplicativo parceiro
A próxima etapa é atribuir funções no portal do Azure para fornecer autorização ao aplicativo de parceiro do sensor. O Gerenciador de Dados para Agricultura usa o RBAC do Azure para gerenciar solicitações de autorização.
Faça logon no portal do Azure e navegue até seu Grupo de Recursos onde você criou o recurso Gerenciador de Dados para Agricultura.
Nota
Dentro da guia do grupo de recursos, se você não encontrar o recurso criado do Gerenciador de Dados para Agricultura, precisará habilitar a caixa de seleção Mostrar tipos ocultos.
Você encontra a opção de menu do IAM (Identity Access Management) no lado esquerdo do painel de opções, conforme mostrado na imagem:
Clique em Adicionar > atribuição de função, esta ação abre um painel no lado direito do portal, escolha a função na lista suspensa:
- AgFood Platform Sensor Partner Contributor - tem todos os privilégios nas operações CRU (Create, Read, Update) que são específicas para sensores.
Para concluir a atribuição de função, execute as seguintes etapas:
Escolha a função mencionada.
Escolha Usuário, grupo ou entidade de serviço na seção Atribuir acesso a.
Cole o Nome ou ID do aplicativo parceiro do sensor na seção Selecionar (conforme mostrado na imagem).
Clique em Guardar para atribuir a função.
Esta etapa garante que o aplicativo parceiro sensor tenha recebido acesso (com base na função atribuída) ao Azure Data Manager for Agriculture Resource.
Etapa 3: Ativar a integração do sensor
Você precisa ativar a integração do sensor antes de iniciar chamadas. Esta etapa provisiona recursos internos do Azure para integração de sensores em sua instância do Data Manager for Agriculture. Você pode fazer isso executando o seguinte comando armclient .
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'}}}"
Saída de exemplo:
{ "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" }
O trabalho pode levar alguns minutos para ser concluído. Para saber o status do trabalho, você pode usar o seguinte comando armclient:
armclient get /subscriptions/<subscription-id>/resourceGroups/<resource-group-name> /providers/Microsoft.AgFoodPlatform/farmBeats/<farmbeats-instance-name>?api-version=2021-09-01-preview
Para verificar o status concluído, examine o atributo provisioningState . O status precisa mudar para "Bem-sucedido" de "Criando" na etapa anterior.
Saída de exemplo:
{ "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>" }
Com a etapa de integração de sensores concluída, agora você pode criar objetos de integração de sensores.
Etapa 4: Criar objeto de integração
Use a coleção e chame a SensorPartnerIntegrations
API do SensorPartnerIntegrations_CreateOrUpdate para criar um objeto de integração para um determinado parceiro de sensor. Cada cliente de um parceiro de sensores (por exemplo: Davis) precisa de um ID de integração exclusivo criado em seu recurso Data Manager for Agriculture.
Há dois caminhos diferentes que você precisa avaliar:
Se você for o proprietário dos sensores fornecidos pelos parceiros de sensores, crie apenas um objeto de integração (ID) para sua conta com o parceiro de sensores.
Se os seus utilizadores finais (ou seja, Agricultores/Retalhistas/Agrónomos) possuírem os sensores, crie um objeto de integração (ID) exclusivo para cada utilizador final, porque cada utilizador final tem as suas próprias contas com o parceiro do sensor.
Ponto de extremidade da API: PATCH /sensor-partners/{sensorPartnerId}/integrations/{integrationID}
Etapa 5: Gerar link de consentimento
Uma seção solicitando o link de consentimento faz parte do fluxo de integração do parceiro do sensor. Este link de consentimento é uma forma de os parceiros do sensor validarem se o cliente é um utilizador válido do serviço. A integração do sensor está ligada à chave de consentimento.
Nosso parceiro de sensores, Davis Instruments , usa essa interface do usuário para habilitar a configuração e solicitar o link de consentimento.
Os parceiros de sensores ligam para o ponto de extremidade da API para verificar a check-consent
validade. Para gerar um link de consentimento, você precisa usar a API e fornecer o ID de integração criado a SensorPartnerIntegrations_GenerateConsentLink
partir da etapa (3). Como resposta, você recebe uma cadeia de caracteres chamada consentLink. Copie esta string e forneça-a ao parceiro do sensor para validação adicional. Se você estiver usando sensores da Davis Instruments, siga as instruções nesta página.
Ponto de extremidade da API: PATCH /sensor-partners/{sensorPartnerId}/integrations/{integrationId}/: generate-consent-link
Esta etapa marca a conclusão da integração do parceiro de sensores do ponto de vista do cliente. , obtenha todas as informações necessárias para chamar seus pontos de extremidade de API para criar modelo de sensor, modelo de dispositivo, sensores e dispositivos. Os parceiros agora podem enviar eventos do sensor usando a cadeia de conexão gerada para cada ID do sensor.
O passo final é começar a consumir eventos do sensor. Antes de consumir os eventos, você precisa criar um mapeamento de cada ID do sensor para um ID de grupo específico e recurso (Campo, Campo sazonal).
Etapa 6: Criar mapeamento de sensores
Use a coleção, chame a SensorMappings
SensorMappings_CreateOrUpdate
API para criar o mapeamento para cada um dos sensores. O mapeamento nada mais é do que associar um ID de sensor a um PartyID específico e a um recurso (campo, campo sazonal, etc.). PartyID e recursos já estão presentes no sistema Data Manager for Agriculture. Essa associação garante que, como plataforma, você consiga construir modelos de ciência de dados em torno de uma geometria comum da dimensão do recurso e do partido. Cada fonte de dados (satélite, meteorologia, operações agrícolas) está vinculada a um recurso de parte. Ao estabelecer esse objeto de mapeamento em um nível por sensor, você alimenta todos os casos de uso agronômico para se beneficiar dos dados do sensor.
Ponto de extremidade da API: PATCH /sensor-mappings/{sensorMappingId}
Etapa 7: Consumir eventos do sensor
Use a coleção para chamar a SensorEvents
SensorEvents_List
API e consumir dados enviados por seus sensores. Deve fornecer as seguintes informações
- sensorId (especifica para qual sensor você deseja que os dados sejam mostrados)
- sensorPartnerId (especifica qual parceiro de sensor está enviando esses dados)
- startDateTime & endDateTime (filtros de intervalo de tempo garantem que os dados sejam fatiados para a linha do tempo solicitada)
Ponto de extremidade da API: GET /sensor-events
Próximos passos
- Teste as nossas APIs aqui.