

# Solucionar problemas de invocación en Lambda
<a name="troubleshooting-invocation"></a>

Cuando invoca una función de Lambda, Lambda valida la solicitud y comprueba la capacidad de escalado antes de enviar el evento a su función o, para la invocación asíncrona, a la cola de eventos. Los errores de invocación pueden deberse a problemas con los parámetros de solicitud, la estructura de eventos, la configuración de funciones, los permisos de usuario, los permisos de recursos o los límites.

Si invoca su función directamente, verá errores de invocación en la respuesta de Lambda. Si invoca la función de forma asíncrona, con una asignación de origen de eventos o a través de otro servicio, es posible que encuentre errores en los registros, una cola de mensajes fallidos o un destino de evento fallido. Las opciones de manejo de errores y el comportamiento de reintento varían en función de cómo invoque la función y del tipo de error.

Para obtener una lista de los tipos de error que la operación `Invoke` puede regresar, consulte [Invocar](https://docs.aws.amazon.com/lambda/latest/api/API_Invoke.html).

**Topics**
+ [Lambda: se agota el tiempo de espera de la función durante la fase Init (Sandbox.Timedout)](#troubleshooting-timeouts)
+ [IAM: lambda:InvokeFunction no autorizado](#troubleshooting-invocation-noauth)
+ [Lambda: no se encontró un arranque válido (Runtime.InvalidEntrypoint)](#troubleshooting-invocation-bootstrap)
+ [Lambda: no se puede realizar la operación ResourceConflictException](#troubleshooting-invocation-ResourceConflictException)
+ [Lambda: la función está atascada en Pendiente](#troubleshooting-invocation-pending)
+ [Lambda: una función utiliza toda la concurrencia](#troubleshooting-invocation-allconcurrency)
+ [General: no se puede invocar la función con otras cuentas o servicios](#troubleshooting-invocation-cannotinvoke)
+ [General: la invocación de funciones está en bucle](#troubleshooting-invocation-loop)
+ [Lambda: enrutamiento de alias con concurrencia aprovisionada](#troubleshooting-invocation-alias)
+ [Lambda: comienza en frío con concurrencia aprovisionada](#troubleshooting-invocation-coldstart)
+ [Lambda: el frío comienza con nuevas versiones](#troubleshooting-invocation-newversion)
+ [Lambda: salida inesperada de Node.js en tiempo de ejecución (Runtime.NodeJsExit)](#troubleshooting-invocation-nodejs-exit)
+ [EFS: la función no pudo montar el sistema de archivos EFS](#troubleshooting-invocation-efsmount)
+ [EFS: la función no se pudo conectar al sistema de archivos EFS](#troubleshooting-invocation-efsconnect)
+ [EFS: La función no pudo montar el sistema de archivos EFS debido al tiempo de espera](#troubleshooting-invocation-efstimeout)
+ [Lambda: Lambda detectó un proceso de E/S que estaba tomando demasiado tiempo](#troubleshooting-invocation-ioprocess)
+ [Contenedor: errores de CodeArtifactUserException](#troubleshooting-deployment-container-artifact)
+ [Contenedor: errores de InvalidEntrypoint](#troubleshooting-deployment-container-entrypoint)

## Lambda: se agota el tiempo de espera de la función durante la fase Init (Sandbox.Timedout)
<a name="troubleshooting-timeouts"></a>

 **Error:** *tiempo de espera de la tarea agotado tras 3,00 segundos* 

Cuando se agota el tiempo de espera de la fase [Init](lambda-runtime-environment.md#runtimes-lifecycle-ib), Lambda vuelve a inicializar el entorno de ejecución y vuelve a ejecutar la fase `Init` cuando llega la siguiente solicitud de invocación. Esto se denomina [inicio suprimido](lambda-runtime-environment.md#suppressed-init). Sin embargo, si la función está configurada con un [tiempo de espera](configuration-timeout.md) corto (generalmente alrededor de 3 segundos), es posible que el inicio suprimido no se complete durante el tiempo de espera asignado, lo que provocará que vuelva a agotarse el tiempo de espera de la fase `Init`. Como alternativa, el inicio suprimido se completa, pero no deja suficiente tiempo para que se complete la fase [Invoke](lambda-runtime-environment.md#runtimes-lifecycle-invoke), lo que hace que se agote el tiempo de espera de la fase `Invoke`.

Para reducir los errores de tiempo de espera, utilice una de las siguientes estrategias:
+ **Aumento del tiempo de espera de la función**: amplíe el [tiempo de espera](configuration-timeout.md) para que las fases `Init` y `Invoke` se completen correctamente.
+ **Aumento de la asignación de memoria de la función**: más [memoria](configuration-memory.md) también significa una asignación de CPU más proporcional, lo que puede acelerar tanto la fase `Init` como la fase `Invoke`.
+ **Optimización del código de inicialización de la función**: reduzca el tiempo necesario para la inicialización para garantizar que las fases `Init` y `Invoke` se completen dentro del tiempo de espera configurado.

## IAM: lambda:InvokeFunction no autorizado
<a name="troubleshooting-invocation-noauth"></a>

 **Error:** *User: arn:aws:iam::123456789012:user/developer is not authorized to perform: lambda:InvokeFunction on resource: my-function* 

El usuario o el rol que usted asume necesita permiso para invocar una función. Este requisito también se aplica a las funciones de Lambda y a otros recursos informáticos que invocan funciones. Agregue la política administrada de AWS **AWSLambdaRole** a su usuario o agregue una política personalizada que le permita la acción `lambda:InvokeFunction` en la función de destino.

**nota**  
El nombre de la acción de IAM (`lambda:InvokeFunction`) hace referencia a la operación de la API de Lambda `Invoke`.

Para obtener más información, consulte  [Administrar permisos en AWS Lambda](lambda-permissions.md) .

## Lambda: no se encontró un arranque válido (Runtime.InvalidEntrypoint)
<a name="troubleshooting-invocation-bootstrap"></a>

 **Error:** *no se encontraron los arranques válidos: [/var/task/bootstrap/opt/bootstrap]* 

Este error suele ocurrir cuando la raíz del paquete de implementación no contiene un archivo ejecutable denominado `bootstrap`. Por ejemplo, si va a implementar una función de `provided.al2023` con un archivo .zip, el archivo de `bootstrap` debe estar en la raíz del archivo .zip, no en un directorio.

## Lambda: no se puede realizar la operación ResourceConflictException
<a name="troubleshooting-invocation-ResourceConflictException"></a>

 **Error:** *ResourceConflictException: la operación no se puede realizar en este momento. La función se encuentra actualmente en el siguiente estado: Pending (Pendiente* 

Cuando conecta una función a una nube virtual privada (VPC) en el momento de la creación, la función entra en un estado `Pending` mientras Lambda crea interfaces de redes elásticas. Durante este tiempo, no puede invocar o modificar su función. Si conecta su función a una VPC después de la creación, puede invocarla mientras la actualización esté pendiente, pero no podrá modificar su código o configuración.

Para obtener más información, consulte  [Estados de función de Lambda](functions-states.md) .

## Lambda: la función está atascada en Pendiente
<a name="troubleshooting-invocation-pending"></a>

 **Error:** *una función está bloqueada en el estado `Pending` durante varios minutos.* 

Si una función queda atascada en el estado `Pending` durante más de seis minutos, llame a una de las siguientes operaciones de API para desbloquearla.
+ [UpdateFunctionCode](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionCode.html)
+ [UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html)
+ [PublishVersion](https://docs.aws.amazon.com/lambda/latest/api/API_PublishVersion.html)

Lambda cancela la operación pendiente y pone la función en el estado `Failed`. Luego, puede intentar realizar otra actualización.

## Lambda: una función utiliza toda la concurrencia
<a name="troubleshooting-invocation-allconcurrency"></a>

 **Problema:** *Una función utiliza toda la concurrencia disponible, lo que hace que otras funciones se limiten.* 

Para dividir la concurrencia disponible en una cuenta de AWS de una región de AWS en grupos, utilice [concurrencia reservada](configuration-concurrency.md). La concurrencia reservada garantiza que una función siempre puede escalar a su concurrencia asignada, y que no escalará más allá de su concurrencia asignada.

## General: no se puede invocar la función con otras cuentas o servicios
<a name="troubleshooting-invocation-cannotinvoke"></a>

 **Problema:** *puede invocar la función directamente, pero esta no se ejecuta cuando otro servicio o cuenta la invoca.* 

Puede conceder permisos a [otros servicios](lambda-services.md) y cuentas para invocar una función en la [política basada en recursos](access-control-resource-based.md) de la función. Si el usuario que invoca la función está en otra cuenta, ese usuario también necesita [permiso para invocar funciones](access-control-identity-based.md). 

## General: la invocación de funciones está en bucle
<a name="troubleshooting-invocation-loop"></a>

 **Problema:** *la función se invoca continuamente en bucle.* 

Esto suele ocurrir cuando la función administra recursos en el mismo servicio de AWS que lo activa. Por ejemplo, es posible crear una función que almacene un objeto en un bucket de Amazon Simple Storage Service (Amazon S3) configurado con una [notificación que invoca la función de nuevo](with-s3.md). Para evitar que la función se ejecute, reduzca la [simultaneidad](lambda-concurrency.md) disponible a cero, lo que limita todas las invocaciones futuras. A continuación, identifique la ruta de acceso del código o el error de configuración que provocó la invocación recursiva. Lambda detecta y detiene de forma automática los bucles recursivos en algunos SDK y servicios de AWS. Para obtener más información, consulte [Utilice la detección de bucles recursivos de Lambda para evitar bucles infinitos](invocation-recursion.md).

## Lambda: enrutamiento de alias con concurrencia aprovisionada
<a name="troubleshooting-invocation-alias"></a>

 **Problema:** *Invocaciones de casos de superación de simultaneidad aprovisionadas durante el enrutamiento de alias.* 

Lambda utiliza un modelo probabilístico simple para distribuir el tráfico entre las dos versiones de funciones. En niveles de tráfico bajos, es posible que vea una gran variación entre el porcentaje configurado y el porcentaje real de tráfico en cada versión. Si su función utiliza la concurrencia aprovisionada, puede evitar [Invocaciones de casos de superación](monitoring-metrics-types.md#invocation-metrics) configurando un mayor número de instancias de simultaneidad aprovisionadas durante el tiempo en que el enrutamiento de alias está activo. 

## Lambda: comienza en frío con concurrencia aprovisionada
<a name="troubleshooting-invocation-coldstart"></a>

 **Problema:** *Verá inicios en frío después de habilitar la concurrencia aprovisionada.* 

Cuando el número de ejecuciones simultáneas en una función es menor o igual que el [nivel configurado de concurrencia aprovisionada](provisioned-concurrency.md), no debería haber ningún comienzo frío. Para ayudarle a confirmar si la concurrencia aprovisionada funciona normalmente, haga lo siguiente:
+  [Comprobar que la concurrencia aprovisionada esté habilitada](provisioned-concurrency.md) en la versión o alias de la función.
**nota**  
La simultaneidad aprovisionada no es compatible con la [versión no publicada de la función](configuration-versions.md) (\$1LATEST).
+ Asegúrese de que los desencadenadores invoquen la versión o alias de función correctos. Por ejemplo, si está utilizando Amazon API Gateway, compruebe que API Gateway invoca la versión de la función o alias con concurrencia aprovisionada, no \$1LATEST. Para confirmar que se está utilizando la concurrencia aprovisionada, puede comprobar la [métrica ProvisionedConcurrcyInvocations de Amazon CloudWatch](monitoring-concurrency.md#provisioned-concurrency-metrics). Un valor distinto de cero indica que la función está procesando invocaciones en entornos de ejecución inicializados.
+ Determine si la concurrencia de funciones excede el nivel configurado de concurrencia aprovisionada comprobando la [métrica ProvisionedConcurrencySpilloverInvocations de CloudWatch](monitoring-concurrency.md#provisioned-concurrency-metrics). Un valor distinto de cero indica que toda la concurrencia aprovisionada está en uso y que se ha producido alguna invocación con un inicio en frío.
+ Compruebe su [frecuencia de invocación](gettingstarted-limits.md#api-requests) (solicitudes por segundo). Las funciones con concurrencia aprovisionada tienen una tasa máxima de 10 solicitudes por segundo por concurrencia aprovisionada. Por ejemplo, una función configurada con 100 concurrencia aprovisionada puede manejar 1000 solicitudes por segundo. Si la tasa de invocación supera las 1000 solicitudes por segundo, pueden producirse algunos inicios en frío.

## Lambda: el frío comienza con nuevas versiones
<a name="troubleshooting-invocation-newversion"></a>

 **Problema:** *Verá arranques en frío al implementar nuevas versiones de su función. * 

Cuando actualiza un alias de función, Lambda cambia automáticamente la concurrencia aprovisionada a la nueva versión en función de los pesos configurados en el alias.

 **Error**: *KMSDisabledException: Lambda no pudo descifrar las variables de entorno porque la clave KMS utilizada está deshabilitada. Compruebe la configuración de claves de KMS de la función.* 

Este error puede producirse si su clave AWS Key Management Service (AWS KMS) está deshabilitada o si se revoca la concesión que permite a Lambda utilizar la clave. Si falta la concesión, configure la función para utilizar una clave diferente. Luego, reasigne la clave personalizada para volver a crear la concesión.

## Lambda: salida inesperada de Node.js en tiempo de ejecución (Runtime.NodeJsExit)
<a name="troubleshooting-invocation-nodejs-exit"></a>

**Problema:** *el cliente de tiempo de ejecución de Lambda detectó un código de salida inesperado de Node.js.*

Este error se produce cuando la función se cierra antes de que se hayan resuelto todas las promesas, por ejemplo, debido a un error de código. También puede ocurrir cuando Node.js detecta un punto muerto que impide que las promesas se resuelvan. Este error solo afecta a los controladores de estilo asíncrono, no a los de tipo devolución de llamada.

**Tiempos de ejecución afectados**: Node.js 18 y versiones posteriores.

**Para resolver este problema, siga estos pasos:**

1. Compruebe el código de la función para detectar promesas pendientes en los controladores asíncronos.

1. Asegúrese de que todas las promesas estén debidamente resueltas o rechazadas antes de que se complete la función.

1. Revise el código para ver las posibles condiciones de carrera en operaciones asíncronas.

Para obtener más información sobre los códigos de salida y la finalización de procesos en Node.js, consulte la [Documentación de Node.js](https://nodejs.org/docs/latest/api/process.html#exit-codes).

## EFS: la función no pudo montar el sistema de archivos EFS
<a name="troubleshooting-invocation-efsmount"></a>

 **Error:** *EFSMountFailureException: la función no pudo montar el sistema de archivos de EFS con el punto de acceso arn:aws:elasticfilesystem:us-east-2:123456789012:access-point/fsap-015cxmplb72b405fd.* 

Se rechazó la solicitud de montaje en el [sistema de archivos](configuration-filesystem.md) de la función. Compruebe los permisos de la función y confirme que su sistema de archivos y su punto de acceso existen y están listos para su uso.

## EFS: la función no se pudo conectar al sistema de archivos EFS
<a name="troubleshooting-invocation-efsconnect"></a>

 **Error:** *EFSMountConnectivityException: la función no se pudo conectar al sistema de archivos de Amazon EFS con el punto de acceso arn:aws:elasticfilesystem:us-east-2:123456789012:access-point/fsap-015cxmplb72b405fd. Compruebe la configuración de la red y vuelva a intentarlo.* 

La función no pudo establecer una conexión con el [sistema de archivos](configuration-filesystem.md) de la función con el protocolo NFS (puerto TCP 2049). Compruebe el [grupo de seguridad y la configuración de enrutamiento](https://docs.aws.amazon.com/efs/latest/ug/network-access.html) de las subredes de la VPC.

Si aparecen estos errores después de actualizar los ajustes de configuración de la VPC de la función, intente desmontar y volver a montar el sistema de archivos.

## EFS: La función no pudo montar el sistema de archivos EFS debido al tiempo de espera
<a name="troubleshooting-invocation-efstimeout"></a>

 **Error:** *EFSMountTimeoutException: la función no pudo montar el sistema de archivos EFS con el punto de acceso \$1arn:aws:elasticfilesystem:us-east-2:123456789012:access-point/fsap-015cxmplb72b405fd\$1 debido a que se agotó el tiempo de espera del montaje.* 

La función pudo conectarse al [sistema de archivos](configuration-filesystem.md) de la función, pero se agotó el tiempo de espera de la operación de montaje. Vuelva a intentarlo después en un tiempo corto y considere limitar la [concurrencia](configuration-concurrency.md) de la función para reducir la carga en el sistema de archivos.

## Lambda: Lambda detectó un proceso de E/S que estaba tomando demasiado tiempo
<a name="troubleshooting-invocation-ioprocess"></a>

 *EFSIOException: esta instancia de función se detuvo porque Lambda detectó un proceso de E/S que estaba tardando demasiado.* 

Se agotó el tiempo de espera de una invocación anterior y Lambda no pudo finalizar el controlador de funciones. Este problema puede producirse cuando un sistema de archivos adjunto se queda sin créditos de ráfaga y el rendimiento previsto es insuficiente. Para aumentar el rendimiento, puede aumentar el tamaño del sistema de archivos o utilizar el rendimiento aprovisionado.

## Contenedor: errores de CodeArtifactUserException
<a name="troubleshooting-deployment-container-artifact"></a>

**Error:** *mensaje de error CodeArtifactUserPendingException*

CodeArtifact está pendiente de optimización. La función pasa al [estado activo](functions-states.md) cuando Lambda completa la optimización. Código de respuesta de HTTP 409.

**Error:** *mensaje de error CodeArtifactUserDeleteException*

La eliminación de CodeArtifact está programada. Código de respuesta de HTTP 409.

**Error:** *mensaje de error CodeArtifactUserFailedException*

Lambda no pudo optimizar el código. Debe corregirlo y cargarlo de nuevo. Código de respuesta de HTTP 409.

## Contenedor: errores de InvalidEntrypoint
<a name="troubleshooting-deployment-container-entrypoint"></a>

**Error:***Runtime.ExitError o "errorType": "Runtime.InvalidEntrypoint"*

Compruebe que la entrada a la imagen contenedor incluye la ruta absoluta como ubicación. Compruebe también que la imagen no contiene un enlace simbólico como ENTRYPOINT.

**Error:** *está utilizando una plantilla CloudFormation y su contenedor ENTRYPOINT está siendo anulado con un valor nulo o vacío.*

Revise el recurso [ImageConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-function-imageconfig.html) de la plantilla CloudFormation. Si declara un recurso `ImageConfig` en la plantilla, debe proporcionar valores no vacíos para las tres propiedades.