Share via


Chame um ponto de extremidade gRPC de um pipeline da Versão Prévia do Processador de Dados da Internet das Coisas do Azure

Importante

O recurso Pré-visualização de Operações do Azure IoT — habilitado pelo Azure Arc — está atualmente em VERSÃO PRÉVIA. Você não deve usar esse software em versão prévia em ambientes de produção.

Veja os Termos de Uso Complementares para Versões Prévias do Microsoft Azure para obter termos legais que se aplicam aos recursos do Azure que estão em versão beta, versão prévia ou que, de outra forma, ainda não foram lançados em disponibilidade geral.

Use o estágio de chamada gRPC para chamar um gRPC externo com um corpo da solicitação opcional e receber uma resposta opcional. A fase de chamada permite incorporar a lógica de processamento de dados personalizada, como a execução de modelos de machine learning, no processamento do pipeline.

  • Cada partição em um pipeline executa independentemente as chamadas à API em paralelo.
  • As chamadas à API são síncronas, o estágio aguarda o retorno da chamada antes de continuar com o processamento de pipeline adicional.
  • Atualmente, o estágio dá suporte apenas ao tipo RPC unário.
  • A chamada gRPC só pode ser usada com o formato Protobuf. Você deve usar o Protobuf com o estágio de chamada gRPC.

Pré-requisitos

Para configurar e usar um estágio de pipeline de chamada gRPC, você precisa de:

  • Uma instância implantada da Versão Prévia do Processador de Dados da Internet das Coisas do Azure.
  • Um servidor gRPC acessível na instância do Processador de Dados.
  • A ferramenta protoc para gerar o descritor.

Configurar um estágio de chamada gRPC

A configuração JSON do estágio de chamada gRPC define os detalhes do estágio. Para criar o estágio, você pode interagir com a interface do usuário baseada em formulário ou fornecer a configuração JSON na guia Avançado.

Nome Tipo Descrição Obrigatório Padrão Exemplo
Nome string Um nome a ser mostrado na interface do usuário do Processador de Dados. Sim - MLCall2
Descrição string Uma descrição amigável do que o estágio de chamada faz. Não Call ML endpoint 2
Server address string O endereço do servidor gRPC. Sim - https://localhost:1313
O nome do RPC string O nome do RPC a ser chamado Sim - GetInsights
Descritor1 string O descritor codificado em base 64. Sim - CuIFChxnb29nb
Autenticação string O tipo de autenticação a ser usado. None/Metadata. Sim None None
A chave de metadados string A chave de metadados a ser usada quando a Authentication for definida como Metadata. Não authorization authorization
Segredo string A referência do segredo a ser usada quando a Authentication for definida como Metadata. Não - mysecret
Habilitar o TLS boolean Se o TLS deve ser habilitado. Atualmente, o Processador de Dados dá suporte à autenticação baseada em TLS com certificado público. Não false true
Solicitação da API > Caminho do corpo Caminho O caminho para a parte da mensagem do Processador de Dados que deve ser serializada e definida como o corpo da solicitação. Deixe vazio se você não precisar enviar um corpo da solicitação. Não - .payload.gRPCRequest
Solicitação da API > Metadados > Chave2 Campo Estático/Dinâmico A chave dos metadados a ser definida na solicitação. Não Campo Estático/Dinâmico
Solicitação da API > Metadados > Valor2 Campo Estático/Dinâmico O valor dos metadados a ser definido na solicitação. Não Campo Estático/Dinâmico
Resposta da API > Caminho do corpo Caminho O Caminho para a propriedade na mensagem de saída na qual armazenar a resposta. Deixe vazio se você não precisar do corpo da resposta. Não - .payload.gRPCResponse
Resposta da API > Metadados Caminho O Caminho para a propriedade na mensagem de saída na qual armazenar os metadados da resposta. Deixe vazio se você não precisar dos metadados da resposta. Não - .payload.gRPCResponseHeader
Resposta da API > Status Caminho O Caminho para a propriedade na mensagem de saída na qual armazenar o status da resposta. Deixe vazio se você não precisar do status da resposta. Não - .payload.gRPCResponseStatus

1Descritor: Como o estágio de chamada gRPC suporta apenas o formato protobuf, você usa as mesmas definições de formato para solicitação e resposta. Para serializar o corpo da solicitação e desserializar o corpo da resposta, você precisa de um descritor codificado em base 64 do arquivo .proto.

Use o seguinte comando para gerar o descritor, substitua <proto-file> pelo nome do arquivo .proto:

protoc --descriptor_set_out=/dev/stdout --include_imports <proto-file> | base64 | tr '\n' ' ' | sed 's/[[:space:]]//g'

Use a saída do comando anterior como o descriptor na configuração.

2Solicitação de API > Metadados: cada elemento da matriz de metadados é um par chave-valor. Você pode definir a chave ou o valor dinamicamente com base no conteúdo da mensagem de entrada ou como uma cadeia de caracteres estática.