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. | Sí | - | 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. | Sí | - | https://localhost:1313 |
Nombre de RPC | cadena | El nombre RPC al que se va a llamar | Sí | - | GetInsights |
Descriptor1 | cadena | Descriptor codificado en base 64. | Sí | - | CuIFChxnb29nb |
Autenticación | cadena | Tipo de autenticación que se debe usar. None /Metadata . |
Sí | 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.
Contenido relacionado
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de