Implementación de funciones de Lambda como archivos .zip
Cuando se crea una función Lambda, empaquete el código de función en un paquete de implementación. Lambda admite dos tipos de paquetes de implementación: imágenes de contenedor y archivos .zip. El flujo de trabajo para crear una función depende del tipo de paquete de implementación. Para configurar una función definida como una imagen de contenedor, consulte Crear una función de Lambda con una imagen de contenedor.
Puede utilizar la consola de Lambda y la API de Lambda para crear una función definida con un archivo .zip. También puede cargar un archivo .zip actualizado para cambiar el código de función.
nota
No puede cambiar el tipo de paquete de implementación (.zip o imagen de contenedor) de una función existente. Por ejemplo, no se puede convertir una función de imagen de contenedor para utilizar un archivo .zip. Debe crear una nueva función.
Temas
Creación de la función de Lambda
Cuando se crea una función definida con un archivo .zip, se elige una plantilla de código, la versión de idioma y el rol de ejecución para la función. Agregue su código de función después de que Lambda cree la función.
Cómo crear la función
Abra la página de Functions
(Funciones) en la consola de Lambda. -
Elija Create function (Crear función).
-
Seleccione Author from scratch (Crear desde cero) o Use a blueprint (Usar proyecto) para crear su función.
-
Bajo Basic information (Información básica), haga lo siguiente:
-
En Nombre de la función, escriba el nombre de la función. Los nombres de las funciones están limitados a 64 caracteres de longitud.
-
Para Runtime (Tiempo de ejecución), elija la versión del idioma que desea utilizar para su función.
-
(Opcional) Para Architecture (Arquitectura), elija la arquitectura del conjunto de instrucciones que utilizará para su función. La arquitectura predeterminada es x86_64. Cuando cree el paquete de implementación para su función, asegúrese de que sea compatible con esta arquitectura del conjunto de instrucciones.
-
-
(Opcional) En Permisos, expanda Cambiar función de ejecución predeterminada. Puede crear un nuevo Rol de ejecución o crear un rol existente.
-
(Opcional) Expanda Advanced settings (Configuración avanzada). Puede elegir una Configuración de firma de código para la función. También puede configurar una (Amazon VPC) para que tenga acceso a la función.
-
Elija Create function (Crear función).
Lambda crea la nueva función. Ahora puede usar la consola para agregar el código de función y configurar otros parámetros y características de función. Para obtener instrucciones de implementación de código, consulte la página del controlador para conocer el tiempo de ejecución que utiliza la función.
Uso del editor de código de la consola
La consola crea una función de Lambda con un único archivo de fuente. Para los lenguajes de scripting, puede editar este archivo y agregar más archivos con el editor de código integrado. Para guardar los cambios, elija Guardar. A continuación, para ejecutar el código, elija Pruebas.
Al guardar el código de función, la consola de Lambda crea un paquete de implementación de archivo .zip. Cuando desarrolle el código de función fuera de la consola (mediante un IDE), debe crear un paquete de implementación para cargar el código a la función de Lambda.
Actualización del código de la función
Para los lenguajes de scripting (Node.js, Python y Ruby), puede editar el código de la función en el editor de código integrado. Si el tamaño del código supera los 3 MB, o si necesita agregar bibliotecas, o para lenguajes incompatibles con el editor (Java, Go, C#), debe cargar el código de función como un archivo .zip. Si el archivo .zip tiene un tamaño inferior a los 50 MB, puede cargarlo desde su equipo local. Si el tamaño del archivo supera los 50 MB, cárguelo a la función desde un bucket de Amazon S3.
Para cargar código de función como un archivo .zip
Abra la página de Funciones
en la consola de Lambda. -
Elija la función que desea actualizar y elija la pestaña Código.
-
En Fuente de código, seleccione Cargar desde.
-
Elija .zip file (Archivo .zip) y, a continuación, elija Upload (Cargar).
En el selector de archivos, seleccione la versión de imagen nueva y elija Open (Abrir) y, luego, Save (Guardar).
-
(Alternativa al paso 4) Elija Amazon S3 location (Ubicación de Amazon S3).
-
En el cuadro de texto, introduzca el vínculo URL de S3 del archivo .zip y, después, elija Save (Guardar).
-
Cambio del tiempo de ejecución
Si actualiza la configuración de la función para utilizar un nuevo tiempo de ejecución, es posible que deba actualizar el código de la función para que sea compatible con el tiempo de ejecución nuevo. Si actualiza la configuración de la función para utilizar un tiempo de ejecución diferente, debe proporcionar un nuevo código de función que sea compatible con el tiempo de ejecución y la arquitectura. Para obtener instrucciones acerca de cómo crear un paquete de implementación para el código de función, consulte la página del controlador para conocer el tiempo de ejecución que utiliza la función.
Las imágenes base de Node.js 20, Python 3.12, Java 21, .NET 8, Ruby 3.3 y versiones posteriores se basan en la imagen de contenedor mínima de Amazon Linux 2023. Las imágenes base anteriores utilizan Amazon Linux 2. AL2023 ofrece varias ventajas con respecto a Amazon Linux 2, incluida una huella de implementación más reducida y versiones actualizadas de bibliotecas como glibc
. Para obtener más información, consulte Presentación del tiempo de ejecución de Amazon Linux 2023 para AWS Lambda
Para cambiar el tiempo de ejecución
Abra la página de Funciones
en la consola de Lambda. -
Elija la función que desea actualizar y elija la pestaña Código.
-
Desplácese hasta la sección Configuración de tiempo de ejecución, que se encuentra en el editor de código.
-
Elija Editar.
-
Para Runtime (Tiempo de ejecución), seleccione el identificador del tiempo de ejecución.
-
Para Handler (Controlador), especifique el nombre de archivo y el controlador de au función.
-
Para Architecture (Arquitectura), elija la arquitectura del conjunto de instrucciones que utilizará para su función.
-
-
Seleccione Guardar.
Modificación de la arquitectura
Antes de cambiar la arquitectura del conjunto de instrucciones, debe asegurarse de que el código de función sea compatible con la arquitectura de destino.
Si utiliza Node.js, Python o Ruby y edita el código de función en el editor integrado, el código existente puede ejecutarse sin modificaciones.
Sin embargo, si proporciona el código de función mediante un paquete de implementación de archivo .zip, debe preparar un nuevo archivo .zip recopilado y creado de forma correcta para el tiempo de ejecución de destino y la arquitectura del conjunto de instrucciones. Para obtener instrucciones, consulte la página del controlador para conocer el tiempo de ejecución de la función.
Para cambiar la arquitectura del conjunto de instrucciones
Abra la página de Funciones
en la consola de Lambda. -
Elija la función a actualizar y luego elija la pesetaña Code (Código).
-
En Runtime settings (Configuración de tiempo de ejecución), elija Edit (Editar).
-
Para Architecture (Arquitectura), elija la arquitectura del conjunto de instrucciones que utilizará para su función.
-
Seleccione Save.
Uso de la API de Lambda
Para crear y configurar una función que utilice un archivo .zip, utilice las siguientes operaciones de la API:
AWS CloudFormation
Puede usar AWS CloudFormation para crear una función Lambda con archivos .zip. En su plantilla AWS CloudFormation, el recurso AWS::Lambda::Function
especifica la función Lambda. Para obtener descripciones de las propiedades del recurso AWS::Lambda::Function
, consulte AWS::Lambda::Function en la Guía del usuario de AWS CloudFormation.
En el recurso AWS::Lambda::Function
, establezca las siguientes propiedades para crear una función definida como un archivo .zip:
-
AWS::Lambda::Function
PackageType: estableca en
Zip
.Código: introduzca el nombre del bucket de Amazon S3 y el nombre del archivo .zip en los campos
S3Bucket
yS3Key
. Para Node.js o Python, puede proporcionar código fuente en línea de su función Lambda.-
Tiempo de ejecución: establece el valor de tiempo de ejecución.
-
Arquitectura: establezca el valor de la arquitectura en
arm64
para utilizar el procesador Graviton2 de AWS. De forma predeterminada, el valor de la arquitectura esx86_64
.