Adición de capas a las funciones - AWS Lambda

Adición de capas a las funciones

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 agregar una capa a una función de 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.

Para poder configurar una función de Lambda en la que se utilice una capa, debe hacer lo siguiente:

Puede agregar hasta cinco capas a una función de Lambda. El tamaño total descomprimido de la función y todas las capas no puede superar la cuota de tamaño del paquete de implementación sin comprimir, de 250 MB. Para obtener más información, consulte Cuotas de Lambda.

Sus funciones pueden seguir utilizando cualquier versión de capa que ya haya agregado, incluso después de que se haya eliminado esa versión de capa o después de revocar su permiso de acceso a la capa. Sin embargo, no puede crear una nueva función que utilice una versión de capa eliminada.

nota

Asegúrese de que las capas que agrega a una función sean compatibles con el tiempo de ejecución y la arquitectura del conjunto de instrucciones de la función.

Para agregar una capa a una función (consola)
  1. Abra la página de Funciones en la consola de Lambda.

  2. Elija la función que desea configurar.

  3. En Layers (Capas), elija Add a layer (Agregar una capa)

  4. En Elegir una capa, elija un origen de capa:

    1. Para los orígenes de capa Capas de AWS o Capas personalizadas, elija una capa en el menú desplegable. En Version (Versión), elija una versión de capa en el menú desplegable.

    2. Para el origen de capa Especificar un ARN, ingrese un ARN en el cuadro de texto y elija Verificar. A continuación, elija Agregar.

El orden en el que agrega las capas es el orden en que Lambda combina el contenido de las capas en el entorno de ejecución. Puede cambiar el orden de fusión de capas mediante la consola.

Para actualizar el orden de combinación de capas de una función (consola)
  1. Abra la página de Funciones en la consola de Lambda.

  2. Elija la función que desea configurar.

  3. En Layers (Capas), elija Edit (Editar).

  4. Elija una de las capas.

  5. Elija Merge earlier (Fusionar antes) o Merge later (Fusionar después) para ajustar el orden de las capas.

  6. Seleccione Guardar.

Las capas están versionadas. El contenido de cada versión de capa es inmutable. El propietario de una capa puede lanzar una nueva versión de capa para proporcionar contenido actualizado. Puede utilizar la consola para actualizar la versión de capa adjunta a sus funciones.

Para actualizar las versiones de las capas de la función (consola)
  1. Abra la página de Capas de la consola de Lambda.

  2. Elija la capa para la que desea actualizar la versión.

  3. Elija la pestaña Funciones que utilizan esta versión.

  4. Elija las funciones que desee modificar y, a continuación, elija Editar.

  5. En Versión de la capa, seleccione la versión de capa a la que desea cambiar.

  6. Elija Update functions (Actualizar funciones).

No se pueden actualizar las versiones de capas de función entre cuentas de AWS.

Acceso al contenido de la capa desde la función

Si la función de Lambda incluye capas, Lambda extrae los contenidos de la capa en el directorio /opt en el entorno de ejecución de la función. Lambda extrae las capas en el orden (de menor a mayor) que la función indica. Lambda combina carpetas con el mismo nombre. Si el mismo archivo aparece en varias capas, la función utiliza la versión de la última capa extraída.

Cada tiempo de ejecución de Lambda agrega carpetas del directorio /opt específicas a la variable PATH. El código de la función puede acceder al contenido de la capa sin necesidad de especificar la ruta. Para obtener más información acerca de la configuración de rutas en el entorno de ejecución de Lambda, consulte Variables definidas de entorno de tiempo de ejecución.

Consulte Rutas de capa para cada tiempo de ejecución de Lambda para saber dónde incluir las bibliotecas al crear una capa.

Si utiliza un tiempo de ejecución de Node.js o Python, puede usar el editor de código integrado en la consola de Lambda. Debería poder importar cualquier biblioteca que haya agregado como capa a la función actual.

Búsqueda de información de capa

Para buscar capas en su cuenta que sean compatibles con el tiempo de ejecución de su función, utilice la API ListLayers. Por ejemplo, puede usar el siguiente comando list-layers de la AWS Command Line Interface (CLI):

aws lambda list-layers --compatible-runtime python3.9

Debería ver una salida similar a esta:

{ "Layers": [ { "LayerName": "my-layer", "LayerArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer", "LatestMatchingVersion": { "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:2", "Version": 2, "Description": "My layer", "CreatedDate": "2023-11-15T00:37:46.592+0000", "CompatibleRuntimes": [ "python3.9", "python3.10", "python3.11", ] } } ] }

Para enumerar todas las capas de su cuenta, omita la opción --compatible-runtime. Los detalles de la respuesta muestran la versión más reciente de cada capa.

También puede obtener la versión más reciente de una capa con la API ListLayerVersions. Por ejemplo, puede usar el siguiente comando list-layer-versions de la CLI:

aws lambda list-layer-versions --layer-name my-layer

Debería ver una salida similar a esta:

{ "LayerVersions": [ { "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:2", "Version": 2, "Description": "My layer", "CreatedDate": "2023-11-15T00:37:46.592+0000", "CompatibleRuntimes": [ "java11" ] }, { "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:1", "Version": 1, "Description": "My layer", "CreatedDate": "2023-11-15T00:27:46.592+0000", "CompatibleRuntimes": [ "java11" ] } ] }