Creación y eliminación de capas en Lambda - AWS Lambda

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). 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)
  1. Abra la página de Capas de la consola de Lambda.

  2. Elija Crear capa.

  3. En Configuración de la capa, en Nombre, escriba un nombre para la capa.

  4. (Opcional) En Descripción, escriba una descripción para su capa.

  5. 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.

  6. (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.

  7. (Opcional) Para Tiempos de ejecución compatibles, elija los tiempos de ejecución con los que la capa es compatible.

  8. (Opcional) Para Licencia, introduzca la información de licencia necesaria.

  9. Seleccione Crear.

Como alternativa, también puede utilizar la API PublishLayerVersion para crear una capa. Por ejemplo, puede utilizar el comando publish-layer-version de la AWS Command Line Interface (CLI) con un nombre, una descripción y un archivo .zip especificados. La información de la licencia, los tiempos de ejecución compatibles y los parámetros de arquitectura compatibles son opcionales.

aws lambda publish-layer-version --layer-name my-layer \ --description "My layer" \ --license-info "MIT" \ --zip-file fileb://layer.zip \ --compatible-runtimes python3.10 python3.11 \ --compatible-architectures "arm64" "x86_64"

Debería ver una salida similar a esta:

{ "Content": { "Location": "https://awslambda-us-east-2-layers.s3.us-east-2.amazonaws.com/snapshots/123456789012/my-layer-4aaa2fbb-ff77-4b0a-ad92-5b78a716a96a?versionId=27iWyA73cCAYqyH...", "CodeSha256": "tv9jJO+rPbXUUXuRKi7CwHzKtLDkDRJLB3cC3Z/ouXo=", "CodeSize": 169 }, "LayerArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer", "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:1", "Description": "My layer", "CreatedDate": "2023-11-14T23:03:52.894+0000", "Version": 1, "CompatibleArchitectures": [ "arm64", "x86_64" ], "LicenseInfo": "MIT", "CompatibleRuntimes": [ "python3.10", "python3.11" ] }

Cada vez que llame a publish-layer-version, 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 API DeleteLayerVersion. Por ejemplo, puede utilizar el comando delete-layer-version de la CLI con el nombre de capa y la versión de capa especificados.

aws lambda delete-layer-version --layer-name my-layer --version-number 1

Al eliminar una versión de una capa, ya no puede configurar una función de Lambda para usarla. Sin embargo, cualquier función que ya utilice la versión sigue teniendo acceso a la misma. Además, Lambda nunca reutiliza los números de versión para el nombre de una capa.

Al calcular las cuotas, eliminar una versión de capa significa que ya no se cuenta como parte de la cuota predeterminada de 75 GB para el almacenamiento de funciones y capas. Sin embargo, en el caso de las funciones que consumen una versión de capa eliminada, el contenido de la capa sigue contando para la cuota de tamaño del paquete de implementación de la función (es decir, 250 MB para archivos con formato .zip).