Empaquetado del contenido de la capa
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 empaquetar correctamente el contenido de la capa. 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.
El primer paso para crear una capa consiste en agrupar todo el contenido de la capa en un archivo .zip. Dado que las funciones de Lambda se ejecutan en Amazon Linux, el contenido de la capa debe poder compilarse y crearse en un entorno de Linux.
Para garantizar que el contenido de la capa funcione correctamente en un entorno de Linux, se recomienda crear el contenido de la capa con una herramienta como Docker
Rutas de capa para cada tiempo de ejecución de Lambda
Cuando agrega una capa a una función, Lambda carga el contenido de la capa en el directorio /opt
de ese entorno de ejecución. Para cada tiempo de ejecución de Lambda, la variable PATH
ya incluye rutas de carpeta específicas en el directorio /opt
. Para garantizar que Lambda recoja el contenido de la capa, el archivo .zip de la capa, debe tener sus dependencias en las siguientes rutas de carpeta:
Tiempo de ejecución | Ruta |
---|---|
Node.js |
|
|
|
|
|
|
|
Python |
|
|
|
Java |
|
Ruby |
|
|
|
Todos los tiempos de ejecución |
|
|
En los siguientes ejemplos se muestra cómo puede estructurar las carpetas en el archivo .zip de su capa.
Para obtener instrucciones específicas del idioma sobre cómo empaquetar, crear y agregar una capa, consulte las siguientes páginas:
No recomendamos usar capas para administrar las dependencias de las funciones de Lambda escritas en Go y Rust. Esto se debe a que las funciones de Lambda escritas en esos lenguajes se compilan en un único ejecutable, que se proporciona a Lambda al implementar la función. Este ejecutable contiene el código de la función compilada, junto con todas sus dependencias. El uso de capas no solo complica este proceso, sino que también aumenta los tiempos de arranque en frío, ya que las funciones tienen que cargar manualmente los ensamblajes adicionales en la memoria durante la fase de inicialización.
Para usar dependencias externas con las funciones de Lambda de Go y Rust, inclúyalas directamente en el paquete de implementación.