Escenario: Envío de mensajes de cola a una función
Integre la cola con Functions mediante Connector Hub.
Este escenario implica la creación de una función y, a continuación, la referencia a esa función como destino en un conector (Connector Hub) para recibir y procesar mensajes de colas.
La carga útil recibida por la función solo contiene mensajes de la cola.
Para obtener un tutorial relacionado, consulte Uso de OCI Functions y OCI Queue para autorizar capacidades de usuario sin exponer el privilegio de administrador a los aprobadores.
Para obtener ayuda con la resolución de problemas, consulte Resolución de problemas de conectores.
Política de IAM necesaria
Si es miembro del grupo Administradores, ya tendrá el acceso necesario para ejecutar este escenario. De lo contrario, necesita acceso a Functions.
El flujo de trabajo para crear el conector incluye una política por defecto cuando es necesario para proporcionar permiso para escribir en el servicio de destino. Si no conoce las políticas, consulte Visión general de las políticas de IAM.
Manejo de errores al procesar colas
En el contexto de los mensajes de cola enviados a funciones, no se soportan fallos parciales durante el procesamiento de mensajes dentro de un lote.
Cuando una función que está procesando un lote de mensajes de una cola encuentra un error, todos los mensajes de ese lote vuelven a estar visibles en la cola, incluidos los mensajes que la función ha procesado correctamente. Por lo tanto, la función podría procesar un mensaje varias veces. Al igual que con cualquier destino, el conector sigue reintentando indefinidamente hasta que el destino de función se realiza correctamente. Para más información, consulte Detalles de entrega.
Si se produce un fallo al procesar un lote de mensajes, el recuento de entrega de esos mensajes sigue aumentando. Si el recuento de entrega de un mensaje alcanza el máximo definido en el nivel de cola, el mensaje se envía a la cola de mensajes con problemas de entrega. Para obtener más información, consulte Recuento de entregas.
Para evitar el reprocesamiento de mensajes, haga que su función sea idempotente.
Configuración de la cola y la función
Para poder crear el conector (Connector Hub) , debe configurar una cola y una función para recibir datos de la cola.
Para obtener instrucciones sobre la cola, consulte Creación de una cola.
Para obtener instrucciones sobre la función, consulte lo siguiente:
Comienza el proceso de creación y se muestra su progreso. Al finalizar, se abre la página de detalles del conector. Ejecute la operación CreateServiceConnector para crear el conector.
Solicitud de ejemplo:
POST /20200909/serviceConnectors Host: service-connector-hub.us-phoenix-1.oraclecloud.com <authorization and other headers> { "displayName": "My Queue to Function Connector", "compartmentId": "<compartment_OCID>", "description": "My connector description", "source": { "kind": "plugin", "pluginName": "QueueSource", "configMap": { "queueId": "<queue_OCID>" } }, "target": { "kind": "functions", "functionId": "<function_OCID>", "batchSizeInKbs": "5000", "batchSizeInNum": "10", "batchTimeInSec": "60" } }
Verificación y solución de problemas de llamadas
Para verificar y solucionar problemas de llamadas en el servicio Functions, consulte Almacenamiento y visualización de logs de funciones.
Confirmación de que el nuevo conector mueve datos
Después de crear el conector, confirme que está moviendo datos.
- Activar logs para que el conector obtenga detalles sobre el flujo de datos.
- Compruebe los resultados esperados en el servicio de destino.
La confirmación de que los datos se mueven ayuda a evitar la desactivación automática, que ocurre cuando un conector falla durante mucho tiempo.