Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
¿Cómo puedo solucionar los errores de las funciones de Lambda en un flujo de contactos de Amazon Connect?
Quiero saber por qué mi función de AWS Lambda no se invoca cuando mi flujo de contactos intenta invocar la función en Amazon Connect.
Resolución
Verificación del mensaje de error en el registro de flujo de contactos
Realiza las siguientes tareas:
- Si no has configurado el registro de flujo de contactos, actívalo para tu instancia de Amazon Connect.
- Busca mensajes de error en tus registros de flujo de contactos. Por ejemplo, para buscar un mensaje de error en un periodo de tiempo específico, usa una consulta similar a la siguiente:
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' | filter BlockType = 'InvokeExternalResource' | sort @timestamp asc | display Timestamp, Results, ContactId, ContactFlowId, ContactFlowName, BlockType
Según el mensaje de error, completa las siguientes tareas.
Status Code: 403; Error Code: AccessDeniedException; RequestId: XXXXXXXX
Si la política basada en recursos de tu función no otorga permiso a Amazon Connect para invocar la función, es posible que aparezca el error anterior. Puedes revisar la política basada en recursos de tu función para ver si la política incluye los permisos necesarios.
Para agregar los permisos necesarios a la política, usa uno de los métodos siguientes:
-
Utiliza la consola de Amazon Connect para añadir una función de Lambda a la instancia. La función obtiene automáticamente los permisos de los recursos cuando se añade a la instancia.
-
Usa el comando add-permission de Interfaz de la línea de comandos de AWS (AWS CLI). Incluye la entidad principal connect.amazonaws.com y el nombre de recurso de Amazon (ARN) de tu instancia de Amazon Connect.
Ejemplo:aws lambda add-permission --function-name function-name --action lambda:InvokeFunction --statement-id connect-to-lambda --principal connect.amazonaws.com --source-arn connect-instance-arn
-
Usa la consola Lambda para crear una política basada en recursos. Para obtener más información, consulta Administrar permisos en AWS Lambda.
Ejemplo de política basada en recursos:{ "Version": "2012-10-17", "Id": "default", "Statement": [ { "Sid": "100", "Effect": "Allow", "Principal": { "Service": "connect.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "<Qualified AWS Lambda ARN>", "Condition": { "ArnLike": { "AWS:SourceArn": "<Amazon Connect ARN>" } } } ] }
«La función de Lambda devolvió un error»
Para averiguar qué pudo haber causado el error anterior, consulta las métricas de Amazon CloudWatch para Lambda. Revisa las métricas de los datos en la marca de tiempo relacionada.
Si las métricas de error no contienen datos en la marca de tiempo relacionada, verifica la respuesta de tu función.
**Nota:**Se recomienda probar el resultado devuelto por la función de Lambda. Confirma que la función de Lambda devuelve el resultado en un formato compatible con Amazon Connect.
En el resultado, revisa las siguientes configuraciones:
- La carga útil de Lambda debe tener un valor distinto de NULL.
- Si el tipo de validación de respuesta es STRING_MAP, el resultado debe ser un objeto plano de pares clave-valor y no se puede anidar. Si el tipo es JSON, el objeto debe ser un valor JSON válido y puede incluir un JSON anidado.
- Los pares clave-valor solo pueden incluir caracteres alfanuméricos, el carácter de guion o el carácter de subrayado.
- El tamaño de los datos devueltos debe ser inferior a 32 KB de datos UTF-8.
- Comprueba que la configuración de Tiempo de espera de la función de Lambda esté establecida en un valor lo suficientemente alto. El valor debe ser lo suficientemente alto para permitir que la función se invoque, procese datos y, a continuación, devuelva una respuesta.
Cuando invocas la función de Lambda en el flujo de contactos, el límite es inferior al que está configurado en el límite máximo de Tiempo de espera de Lambda. La configuración de Tiempo de espera tiene un valor predeterminado de 3 segundos y un valor máximo de 8 segundos.
Por ejemplo, supongamos que la función de Lambda está configurada con un valor de tiempo de espera de 15 segundos y que la función de Lambda se procesa durante 10 segundos. Si bien no aparece ningún error de tiempo de espera, el flujo de contactos dirige el procesamiento a la rama de errores porque el valor máximo permitido de Tiempo de espera es de 8 segundos.
Para saber cuánto tarda la función en invocarse, consulta las métricas de duración de la función en Amazon CloudWatch. A continuación, actualiza el valor de tiempo de espera de la invocación de la función de Lambda y de las funciones de Lambda, según sea necesario.
Nota: Para incluir funciones de Lambda en tu flujo de contactos que tarden más de 8 segundos en invocarse, usa funciones de Lambda asíncronas con Amazon Connect. Si invocas varias funciones de Lambda, la duración de la secuencia de funciones debe ser de 20 segundos o menos.
Si las métricas de errores de Lambda contienen datos de la marca de tiempo relacionada, completa los pasos de ¿Cómo puedo solucionar los errores en la función de Lambda?
Información relacionada

Contenido relevante
- preguntada hace 24 díaslg...
- preguntada hace 3 meseslg...
- Respuesta aceptadapreguntada hace 2 meseslg...
- preguntada hace 4 meseslg...
- preguntada hace 4 meseslg...
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 2 años