Implementación de funciones de Lambda como archivos .zip - AWS Lambda

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 Implementación de funciones de Lambda como imágenes 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 se puede convertir una función de archivo de archivo .zip existente para utilizar una imagen contenedor. Debe crear una nueva función.

Creación de la función

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.

Para crear la función

  1. Abra la página de Functions (Funciones) en la consola de Lambda.

  2. Elija Create function (Crear función).

  3. Seleccione Author from scratch (Crear desde cero) o Use a blueprint (Usar proyecto) para crear su función.

  4. Bajo Basic information (Información básica), haga lo siguiente:

    1. En Nombre de función, escriba el nombre de la función. Los nombres de las funciones están limitados a 64 caracteres de longitud.

    2. Para Runtime (Tiempo de ejecución), elija la versión del idioma que desea utilizar para su función.

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

  5. (Opcional) En Permisos, expanda Cambiar función de ejecución predeterminada. Puede crear un nuevo Rol de ejecución o crear un rol existente.

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

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

Node.js

Implementar funciones Node.js de Lambda con archivos de archivo.zip

Python

Implementar funciones Python Lambda con archivos .zip

Ruby

Implementar funciones de Lambda de Ruby con archivos .zip

Java

Implementar funciones de Lambda Java con archivos de archivo .zip o JAR

Go

Implementar funciones Go Lambda con archivos .zip

C#

Implementar funciones de Lambda C# con archivos de archivo .zip

PowerShell

Implementar funciones Lambda de PowerShell con archivos .zip

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 Save (Guardar). A continuación, para ejecutar el código, elija Pruebas.

nota

La consola de Lambda utiliza AWS Cloud9para proporcionar un entorno de desarrollo integrado en el navegador. También puede utilizar AWS Cloud9 para desarrollar funciones de Lambda en su propio entorno. Consulte Trabajar con funciones de Lambda en la Guía del usuario de AWS Cloud9 para obtener más información.

Al guardar el código de función, la consola de Lambda crea un paquete de implementación de archivo .zip. Cuando desarrolle su código de función fuera de la consola (usando un SDE), debe crear un paquete de implementación para cargar su código a la función Lambda.

Actualización del código de 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

  1. Abra la página de Functions (Funciones) en la consola de Lambda.

  2. Elija la función que desea actualizar y elija la pestaña Código.

  3. En Fuente de código, seleccione Cargar desde.

  4. Elija .zip file (Archivo .zip) y, a continuación, elija Upload (Cargar).

    1. En el selector de archivos, seleccione la versión de imagen nueva y elija Open (Abrir) y, luego, Save (Guardar).

  5. (Alternativa al paso 4) Elija Amazon S3 location (Ubicación de Amazon S3).

    1. En el cuadro de texto, introduzca el vínculo URL de S3 del archivo .zip y, después, elija Save (Guardar).

Modificación del tiempo de ejecución o de la versión del tiempo de ejecución

Si actualiza la configuración de la función para utilizar una versión del tiempo de ejecución nueva, es posible que deba actualizar el código de función para que sea compatible con la versión nueva. 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.

Para cambiar el tiempo de ejecución o la versión del tiempo de ejecución

  1. Abra la página de Functions (Funciones) en la consola de Lambda.

  2. Elija la función a actualizar y luego elija la pesetaña Code (Código).

  3. En Runtime settings (Configuración de tiempo de ejecución), elija Edit (Editar).

    1. Para Runtime (Tiempo de ejecución), seleccione la versión en tiempo de ejecución.

    2. Para Handler (Controlador), especifique el nombre de archivo y el controlador de au función.

    3. Para Architecture (Arquitectura), elija la arquitectura del conjunto de instrucciones que utilizará para su función.

  4. Seleccione Save.

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

  1. Abra la página de Functions (Funciones) en la consola de Lambda.

  2. Elija la función a actualizar y luego elija la pesetaña Code (Código).

  3. En Runtime settings (Configuración de tiempo de ejecución), elija Edit (Editar).

  4. Para Architecture (Arquitectura), elija la arquitectura del conjunto de instrucciones que utilizará para su función.

  5. 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 y S3Key. 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 es x86_64.