Partilhar via


Chamar para um ponto de extremidade gRPC a partir de um pipeline de processador de dados

Importante

Azure IoT Operations Preview – habilitado pelo Azure Arc está atualmente em visualização. Não deve utilizar este software de pré-visualização em ambientes de produção.

Você precisará implantar uma nova instalação do Azure IoT Operations quando uma versão disponível em geral for disponibilizada, você não poderá atualizar uma instalação de visualização.

Veja Termos de Utilização Complementares da Pré-visualizações do Microsoft Azure para obter os termos legais que se aplicam às funcionalidades do Azure que estão na versão beta, na pré-visualização ou que ainda não foram lançadas para disponibilidade geral.

Use o estágio de chamada gRPC para chamar um gRPC externo com um corpo de solicitação opcional e receber uma resposta opcional. O estágio de chamada permite incorporar lógica de processamento de dados personalizada, como a execução de modelos de aprendizado de máquina, no processamento de pipeline.

  • Cada partição em um pipeline executa independentemente as chamadas de API em paralelo.
  • As chamadas de API são síncronas, o estágio aguarda o retorno da chamada antes de continuar com o processamento adicional do pipeline.
  • Atualmente, o estágio suporta apenas o tipo RPC Unary.
  • 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 texto explicativo gRPC, você precisa:

  • Uma instância implantada do processador de dados que inclui o componente opcional do processador de dados.
  • Um servidor gRPC acessível a partir da instância do processador de dados.
  • A protoc ferramenta 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 palco, 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 Necessário Predefinição Exemplo
Nome string Um nome a ser exibido na interface do usuário do processador de dados. Sim - MLCall2
Description 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
Nome RPC string O nome RPC a ser chamado Sim - GetInsights
Descritor1 string O descritor codificado de base 64. Sim - CuIFChxnb29nb
Autenticação string O tipo de autenticação a ser usado. None/Metadata. Sim None None
Chave de metadados string A chave de metadados a ser usada quando Authentication estiver definida como Metadata. Não authorization authorization
Segredo string A referência secreta a ser usada quando Authentication é definida como Metadata. Não - mysecret
Ativar TLS boolean Se o TLS deve ser habilitado. Atualmente, o processador de dados suporta autenticação baseada em TLS com certificado público. Não false true
Caminho do corpo da solicitação de > API 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 em branco se não precisar enviar um corpo de solicitação. Não - .payload.gRPCRequest
Chave de metadados > de solicitação > deAPI 2 Campo estático/dinâmico A chave de metadados a ser definida na solicitação. Não Campo estático/dinâmico
Valor demetadados > de solicitação > de API 2 Campo estático/dinâmico O valor de metadados a ser definido na solicitação. Não Campo estático/dinâmico
Caminho do corpo de resposta > da API Caminho O caminho para a propriedade na mensagem de saída para armazenar a resposta. Deixe vazio se não precisar do corpo de resposta. Não - .payload.gRPCResponse
Metadados de resposta > da API Caminho O caminho para a propriedade na mensagem de saída para armazenar os metadados de resposta. Deixe em branco se não precisar dos metadados de resposta. Não - .payload.gRPCResponseHeader
Status de resposta > da API Caminho O caminho para a propriedade na mensagem de saída para armazenar o status da resposta. Deixe em branco se não precisar do status da resposta. Não - .payload.gRPCResponseStatus

1 Descritor: 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 base 64 do arquivo .proto.

Use o seguinte comando para gerar o descritor, substitua <proto-file> pelo nome do seu 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 na descriptor configuração.

2 Metadados de solicitação > de API: Cada elemento na matriz de metadados é um par de valores de chave. 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.