¿Cómo puedo solucionar los errores de la función Lambda en un flujo de contacto de Amazon Connect?

Última actualización: 24/08/2021

La función de AWS Lambda que agregué a mi instancia de Amazon Connect no se invoca cuando mi flujo de contacto intenta invocar la función. ¿Cómo lo soluciono?

Resolución

Nota: Si recibe errores al ejecutar comandos de AWS Command Line Interface (AWS CLI), asegúrese de que utiliza la versión más reciente de AWS CLI.

Verifique que la política basada en recursos de la función Lambda concede permiso a Amazon Connect para invocar la función

1.    Si aún no lo ha hecho, active el registro de flujo de contacto para la instancia de Amazon Connect.

2.    Busque en los registros de flujo de contacto cualquier mensaje de error AccessDeniedException. Este error aparece cuando la política basada en recursos de AWS Identity and Access Management (IAM) de la función no concede permiso a Amazon Connect para invocar la función.

Nota: También puede revisar manualmente la política basada en recursos de la función para ver si incluye los permisos necesarios. Para obtener más información, consulte Uso de políticas basadas en recursos para AWS Lambda.

Para agregar los permisos necesarios

Ejecute el comando add-permission de la AWS CLI. Incluya la entidad principal connect.amazonaws.com y el nombre de recurso de Amazon (ARN) de la instancia de Amazon Connect.

Para obtener más información, consulte Creación de una función Lambda en la guía del administrador de Amazon Connect. También consulte conceder acceso a funciones a los servicios de AWS en la guía para desarrolladores de Lambda.

Ejemplo de política basada en recursos para una función Lambda que concede permiso a Amazon Connect con el objetivo de invocar la función

Importante: Sustituya <Qualified AWS Lambda ARN> (ARN de la función Lambda calificada) por el ARN de la función. Reemplace <Amazon Connect ARN> (ARN de Amazon Connect) por el ARN de la instancia de Amazon Connect.

{
    "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>"
              }
            }
        }
     ]
}

Verifique la respuesta de la función Lambda

Siga las instrucciones de Verificación de la respuesta de la función de la guía del administrador de Amazon Connect. Al probar el resultado devuelto por la función Lambda, verifique lo siguiente:

  • La salida es un objeto sin formato de pares clave-valor.
  • Los pares clave-valor solo incluyen caracteres alfanuméricos, guiones y guiones bajos.
  • El objeto no está anidado ni es complejo.
  • El tamaño de los datos devueltos es inferior a 32 KB de datos UTF-8.

Verifique que la configuración “Timeout” (Tiempo de espera) de la función Lambda esté lo suficientemente alta como para permitir que la función pueda invocar.

Si la función no invoca dentro del valor de Timeout (Tiempo de espera) configurado, el contacto se dirige hacia la división Error del bloque de contactos Invoke AWS Lambda function (Invocar la función de AWS Lambda). La configuración predeterminada de Timeout (Tiempo de espera) es de tres segundos. La configuración deTimeout (Tiempo de espera) máximo es de ocho segundos.

Para ver cuánto tarda en invocarse la función, revise las métricas de Duration (Duración) de la función en Amazon CloudWatch.

Para revisar y editar la configuración de Timeout (Tiempo de espera) de la función Lambda, consulte Bloque de contactos: invocar la función de AWS Lambda.

Nota: Para incluir funciones Lambda en el flujo de contacto que tarden más de ocho segundos en invocarse, utilice funciones Lambda asíncronas con Amazon Connect.

(Si va a invocar varias funciones Lambda) asegúrese de que la duración de la secuencia de funciones sea inferior a 20 segundos

Amazon Connect limita la duración de una secuencia de funciones Lambda a 20 segundos. Para invocar varias funciones que duran más de 20 segundos, puede agregar un bloque de contacto de Play prompt (Reproducir mensaje) entre cada una de las funciones.

Para obtener más información, consulte la sección Lambda de las Prácticas recomendadas para Amazon Connect en la guía del administrador de Amazon Connect.

Identificar y resolver cualquier otro error que provoque un error en la función


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?