Quiero solucionar los errores de flujo de contactos en Amazon Connect.
Resolución
Activación de los registros de flujo de contactos
Activa los registros de flujo. Utiliza los registros de flujo de contactos para comprender cómo se desplaza una llamada a través de los diferentes bloques de flujo de contactos. Además, puedes usar los registros de flujo de contactos para solucionar y aislar errores.
Para ver cómo la llamada recorre el flujo, correlaciona los registros del flujo de contactos o reproducir el problema en un entorno de pruebas y exporta los flujos.
Identificación del error de flujo de contactos
Para supervisar e identificar los errores de flujo de contactos, utiliza las métricas de Amazon CloudWatch ContactFlowErrors y ContactFlowFatalError.
Para buscar eventos relacionados con errores, sigue estos pasos:
- Abre la consola de CloudWatch.
- En el panel de navegación, en Registros, selecciona Información de registros.
- Selecciona el nombre del grupo de registro para tus registros de instancias de Amazon Connect. El formato es /aws/connect/yourinstancename.
- En la esquina superior derecha,especifica una escala temporal de consulta.
- Ejecuta la siguiente consulta para un intervalo de tiempo específico:
fields @timestamp, @message| filter @message like 'Results'
| parse @message '"Results":"*","ContactId":"*","ContactFlowId":"*","ContactFlowName":"*","ContactFlowModuleType":"*"' as Results, ContactId, ContactFlowId, ContactFlowName, BlockType
| filter Results like 'rror' or Results like 'ailed' or Results like 'imeout' or Results like 'xception' or Results like 'No prompt provided' or Results like 'Instance has reached concurrent Lambda thread access limit' or Results like 'nsupported' or Results like 'nvalid' or Results like 'not found' or Results like 'execution limit reached'
| sort @timestamp asc
| display Timestamp, Results, ContactId, ContactFlowId, ContactFlowName, BlockType
Alternativa:
Ejecuta la siguiente consulta para un ID de contacto específico:
fields @timestamp, @message| sort @timestamp desc
| filter ContactId = "162faf0b-4e68-4a4b-bbde-96c9631f2a95"
Nota: Sustituye el valor de ContactId por tu ID de contacto.
Para solucionar el error de flujo de contactos, revisa los detalles de configuración de la alarma de CloudWatch. Identifica si usaste la métrica ContactFlowErrors o ContactFlowFatalError para configurar la alarma y los flujos de contacto asociados a la alarma.
Si la métrica de la métrica es ContactFlowFatalError, es posible que el error sea un problema de servicio, ya que el flujo no se pudo ejecutar debido a un error del sistema. Si la métrica de alarma es ContactFlowErrors, significa que Amazon Connect ha redirigido un bloque de contactos hacia abajo por la rama de errores.
A continuación, revisa los registros relacionados con el flujo de contactos afectado para identificar el bloque que produjo el error. Para obtener más información sobre los bloques de flujo, consulta Definiciones de bloques de flujo en el diseñador de flujos de Amazon Connect.
Nota: Los bloques de flujo de contactos pueden producir errores en CloudWatch, pero no generar un registro de CloudWatch correspondiente.
Solución de errores de Lambda en los flujos de contacto
El bloque Invocar función de Lambda llama a AWS Lambda y, de forma opcional, devuelve pares clave-valor que puedes usar para establecer los atributos de los contactos. Este bloque puede provocar errores en el flujo de contactos.
Para investigar los errores de las funciones de Lambda, ejecuta la siguiente consulta en Información de registros de Amazon CloudWatch:
fields @timestamp, @message| sort @timestamp desc
| filter Results LIKE "Error"
El resultado es similar al siguiente:
{
"Results": "The Lambda Function Returned an Error.",
"ContactId": "alebb22a-93c4-4f90-8f22-b3718c4578E0",
"ContactFlowId": "contact-flow-id",
"ContactFlowName": "chat",
"ContactFlowModuleType": "InvokeExternalResource",
"Timestamp": "2023-12-20T14:14:13.794Z",
"Parameters": {
"FunctionARN": "arn:aws:lambda:us-west-2:1099999:function:Connect-Wallboard-Historical-Metrics",
},
"TimeLimit": "3000"
}
El ContactFlowModule afectado de InvokeExternalResource hace referencia a una función de Lambda, un nombre de flujo de contactos y un error. Busca la función de Lambda afectada. A continuación, correlaciona las marcas de tiempo (o ID de contacto) para obtener el evento exacto que provocó el error en los registros de ejecución de Lambda.
A continuación, se muestra un ejemplo de un error en los registros de flujo de contactos provocado por el bloque InvokeExternalResource:
{
"Results": "Status Code: 403; Error Code: AccessDeniedException; RequestID: 435c21cc-19d8-4847-864e-e32867fe3a70
"ContactId": "alebb22a-93c4-4f90-8f22-b3718c4578E0",
"ContactFlowId": " arn:aws:lambda:us-west-2:1099999/contact-flow/65569e69-5c67-4061-8776-fd1d501c4838",
}
El error "Access Denied" significa que el flujo de contactos no tiene acceso para invocar la función de Lambda. Para obtener información sobre cómo agregar una función a la instancia, consulta Adición de una función de Lambda a la instancia de Amazon Connect.
No hay ningún RequestId que vincule los mensajes de registro de Amazon Connect para los flujos de contactos con los registros de ejecución de Lambda. Si las funciones de Lambda imprimen el evento de invocación, utiliza ContactId para correlacionar los registros de flujo de contactos y los registros de ejecución de funciones de Lambda. Si la función no imprime el evento de invocación, usa la marca de tiempo de los registros de flujo de contactos para filtrar los registros de ejecución de la función de Lambda.
Si el bloque Invocar función de Lambda devuelve un error, pero no hay una entrada correspondiente en las funciones de Lambda, comprueba las siguientes configuraciones:
- La carga útil de Lambda puede ser NULL.
- El resultado devuelto por la función debe ser un objeto plano de pares de clave y valor, con valores que incluyan caracteres alfanuméricos, guiones y guiones bajos.
- La respuesta de la función de Lambda no es un simple mapa de cadenas o la respuesta es superior a 32 000. Se recomienda probar el resultado devuelto por la función de Lambda para confirmar que Amazon Connect consume correctamente las funciones que devuelve Lambda.
Para evitar errores en el flujo de contactos, puedes utilizar la simulación de llamadas nativa de Amazon Connect antes de desplegar el flujo de contactos en producción.