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.