Creación y eliminación de capas en Lambda
Una capa de Lambda es un archivo .zip que contiene código o datos adicionales. Las capas suelen contener dependencias de biblioteca, un tiempo de ejecución personalizado o archivos de configuración.
En esta sección se explica cómo crear y eliminar capas en Lambda. Para obtener más información conceptual sobre las capas y los motivos por los que podría considerar la posibilidad de utilizarlas, consulte Administración de las dependencias de Lambda con capas.
Después de haber empaquetado el contenido de su capa, el siguiente paso consiste en crear la capa en Lambda. En esta sección se muestra cómo crear y eliminar capas utilizando únicamente la consola de Lambda o la API de Lambda. Para crear una capa con AWS CloudFormation, consulte Usar AWS CloudFormation con capas. Para crear una capa con AWS Serverless Application Model (AWS SAM), consulte Usar AWS SAM con capas.
Creación de una capa
Para crear una capa, puede cargar el archivo .zip desde su equipo local o desde Amazon Simple Storage Service (Amazon S3). Al cargar el código desde Amazon S3, puede elegir si Lambda lo copia en el almacenamiento administrado por Lambda o hace referencia a este directamente desde el bucket de S3. Para obtener más información, consulte Almacenamiento de código de S3 autoadministrado.
Lambda extrae el contenido de la capa en el directorio /opt al configurar el entorno de ejecución para la función.
Las capas pueden tener una o más versiones de capa. Al crear una capa, Lambda establece la versión de la capa en la versión 1. Puede cambiar los permisos de una versión de capa existente en cualquier momento. Sin embargo, para actualizar el código o realizar otros cambios de configuración, debe crear una nueva versión de la capa.
Para crear una capa (consola)
-
Abra la página de Capas
de la consola de Lambda. -
Elija Crear capa.
-
En Configuración de la capa, en Nombre, escriba un nombre para la capa.
-
(Opcional) En Descripción, escriba una descripción para su capa.
-
Para cargar el código de capa, realice una de las siguientes acciones:
-
Para cargar un archivo.zip desde el equipo, elija Cargar un archivo .zip. Seleccione Cargar para seleccionar el archivo .zip local.
-
Para cargar un archivo desde Amazon S3, elija Upload a file from Amazon S3 (Cargar un archivo desde Amazon S3). Entonces, para el URL de enlace de Amazon S3, ingrese un enlace al archivo.
-
-
(Opcional) En Arquitecturas compatibles, elija un valor o ambos valores. Para obtener más información, consulte Configuración y selección de la arquitectura del conjunto de instrucciones para una función de Lambda.
-
(Opcional) Para Tiempos de ejecución compatibles, elija los tiempos de ejecución con los que la capa es compatible.
-
(Opcional) Para Licencia, introduzca la información de licencia necesaria.
-
Seleccione Crear.
Como alternativa, puede ejecutar el comando publish-layer-versionS3ObjectStorageMode=REFERENCE para utilizar el almacenamiento de código de S3 autoadministrado u omítalo para utilizar el almacenamiento administrado por Lambda; en este último caso, se utiliza COPY de forma predeterminada. Ejemplo:
aws lambda publish-layer-version --layer-namemy-layer--zip-file fileb://layer.zip --compatible-runtimespython3.14
Cada vez que ejecuta publish-layer-version, Lambda crea una nueva versión de la capa.
Eliminación de una versión de capa
Para eliminar una versión de capa, utilice la operación de la API DeleteLayerVersion. Por ejemplo, ejecute el comando delete-layer-version
aws lambda delete-layer-version --layer-name my-layer --version-number 1
Cuando se elimina una versión de una capa, ya no es posible configurar funciones nuevas para que la utilicen. Sin embargo, cualquier función que ya haga referencia a la versión eliminada de la capa continúa ejecutándose con el contenido de esa capa. Lambda nunca reutiliza los números de versión de un mismo nombre de capa.
Efecto de la eliminación de capas en la cuota de almacenamiento
El efecto que tiene la eliminación de una versión de una capa en la cuota de almacenamiento depende del modo de almacenamiento que utilicen la capa y las funciones que hacen referencia a esta.
- La capa utiliza almacenamiento administrado por Lambda (COPIA)
-
Cuando se elimina una versión de una capa que utiliza almacenamiento administrado por Lambda, el código de la capa deja de contabilizarse en la cuota de almacenamiento administrado por Lambda de la cuenta. Sin embargo, cualquier función que siga haciendo referencia a la versión eliminada de la capa continúa teniendo acceso al contenido de la capa. El contenido de la capa se contabiliza en la cuota de tamaño del paquete de implementación de la función, que es de 250 MB sin comprimir, pero deja de contabilizarse en la cuota de almacenamiento administrado por Lambda a nivel de la cuenta.
- La capa utiliza almacenamiento de S3 autoadministrado (REFERENCIA)
-
Las capas que utilizan almacenamiento de código de S3 autoadministrado no consumen almacenamiento administrado por Lambda, por lo que su eliminación no afecta la cuota de almacenamiento administrado por Lambda. Las funciones que hacen referencia a una versión eliminada de una capa autoadministrada continúan ejecutándose con normalidad. Sin embargo, si también elimina el objeto de origen del bucket de S3 o revoca el acceso de Lambda a dicho objeto, ya no podrá actualizar la configuración de la función con esa capa.
nota
La eliminación de una versión de una capa nunca desactiva las funciones que hacen referencia a esta. Las funciones permanecen en Active independientemente de que la capa utilice almacenamiento administrado por Lambda o almacenamiento de S3 autoadministrado. El estado Inactive solo se aplica cuando Lambda pierde el acceso al código de origen de la propia función almacenado en un bucket de S3 autoadministrado.