Compartir a través de


Llamada a un punto de conexión gRPC desde una canalización del procesador de datos de Azure IoT (versión preliminar)

Importante

Operaciones de IoT de Azure, habilitado por Azure Arc, está actualmente en VERSIÓN PRELIMINAR. No se debería usar este software en versión preliminar en entornos de producción.

Consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en la versión beta, en versión preliminar o que todavía no se han publicado para que estén disponibles con carácter general.

Use la fase de llamada gRPC para llamar a un gRPC externo con un cuerpo de solicitud opcional y recibir una respuesta opcional. La fase de llamada permite incorporar lógica de procesamiento de datos personalizada, como la ejecución de modelos de aprendizaje automático, en el procesamiento de canalizaciones.

  • Cada partición de una canalización ejecuta independientemente las llamadas API en paralelo.
  • Las llamadas API son sincrónicas, la fase espera a que se devuelva la llamada antes de continuar con el procesamiento de canalización adicional.
  • Actualmente, la fase solo admite el tipo RPC unario.
  • La llamada a gRPC solo se puede usar con el formato Protobuf. Debe usar Protobuf con la fase de llamada gRPC.

Requisitos previos

Para configurar y utilizar una etapa de canalización de llamadas gRPC, necesita lo siguiente:

  • Una instancia implementada de La versión preliminar del procesador de datos de Azure IoT que incluye el componente opcional del procesador de datos.
  • Un servidor de gRPC accesible desde la instancia del procesador de datos.
  • Herramienta protoc para generar el descriptor.

Configuración de una fase de llamada de gRPC

La configuración JSON de la fase de llamada define sus detalles. Para crear la fase, puede interactuar con la interfaz de usuario basada en formularios o proporcionar la configuración JSON en la pestaña Opciones avanzadas.

Nombre Escribir Descripción Necesario Valor predeterminado Ejemplo
Nombre cadena Un nombre para mostrar en la interfaz de usuario del procesador de datos. - MLCall2
Descripción cadena Una descripción sencilla de lo que hace la fase de llamada. No Call ML endpoint 2
Dirección del servidor cadena Dirección del servidor gRPC. - https://localhost:1313
Nombre de RPC cadena El nombre RPC al que se va a llamar - GetInsights
Descriptor1 cadena Descriptor codificado en base 64. - CuIFChxnb29nb
Autenticación cadena Tipo de autenticación que se debe usar. None/Metadata. None None
Clave de metadatos cadena Clave de metadatos que se va a usar cuando Authentication se establezca en Metadata. No authorization authorization
Secreto cadena Referencia secreta que se va a usar cuando Authentication se establezca en Metadata. No - mysecret
Habilitación de TLS boolean Si se va a habilitar TLS. El procesador de datos admite actualmente la autenticación basada en TLS con un certificado público. No false true
Ruta de acceso del cuerpo > de la solicitud de la API Path Ruta de acceso a la parte del mensaje del procesador de datos que se debe serializar y configurar como el cuerpo de la solicitud. Deje este campo vacío si no necesita enviar un cuerpo de solicitud. No - .payload.gRPCRequest
> Metadatos > clave2 de la solicitud de la API Campo estático/dinámico Clave de metadatos que se va a establecer en la solicitud. No Campo estático/dinámico
> Metadatos > valor2 de la solicitud de la API Campo estático/dinámico Valor de metadatos que se va a establecer en la solicitud. No Campo estático/dinámico
Ruta de acceso > de la respuesta de la API Path Ruta de acceso a la propiedad del mensaje saliente en el que se va a almacenar la respuesta. Deje este campo vacío si no necesita el cuerpo de la respuesta. No - .payload.gRPCResponse
Metadatos > de la respuesta de la API Path La ruta de acceso a la propiedad del mensaje saliente en el que se almacenarán los metadatos de respuesta. Deje este campo vacío si no necesita los metadatos de respuesta. No - .payload.gRPCResponseHeader
Estado > de la respuesta de la API Path Ruta de acceso a la propiedad del mensaje saliente en el que se va a almacenar el estado de la respuesta. Deje este campo vacío si no necesita el estado de respuesta. No - .payload.gRPCResponseStatus

1Descriptor: Dado que la fase de llamada de gRPC solo admite el formato protobuf, se usan las mismas definiciones de formato para la solicitud y la respuesta. Para serializar el cuerpo de la solicitud y deserializar el cuerpo de la respuesta, necesita un descriptor codificado en base 64 del archivo .proto.

Use el siguiente comando para generar el descriptor y reemplace <proto-file> por el nombre del archivo .proto:

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

Usa la salida del comando anterior como descriptor en la configuración.

2Metadatos > de la solicitud de la API: cada elemento de la matriz de metadatos es un par de valores clave. Puedes establecer la clave o el valor dinámicamente en función del contenido del mensaje entrante o como una cadena estática.