Implementación de funciones de Lambda - AWS Lambda

Implementación de funciones de Lambda

Puede implementar código en la función de Lambda mediante la carga de un archivo zip o mediante la creación y carga de una imagen de contenedor.

archivos de archivo .zip

Un archivo de archivo .zip incluye el código de la aplicación y sus dependencias. Al crear funciones mediante la consola de Lambda o un kit de herramientas, Lambda crea automáticamente un archivo de archivo .zip del código.

Al crear funciones con la API de Lambda, las herramientas de línea de comandos o los AWS SDK, debe crear un paquete de implementación. También debe crear un paquete de implementación si su función utiliza un lenguaje compilado, o para agregar dependencias a su función. Para implementar el código de su función, cargue el paquete de implementación desde Amazon Simple Storage Service (Amazon S3) o desde su equipo local.

Puede cargar un archivo .zip como paquete de implementación utilizando la consola de Lambda, AWS Command Line Interface (AWS CLI) o en un bucket de Amazon Simple Storage Service (Amazon S3).

Permisos de archivos de paquetes de implementación

El tiempo de ejecución de Lambda necesita permiso para leer los archivos del paquete de implementación. En la notación octal de permisos de Linux, Lambda necesita 644 permisos para archivos no ejecutables (rw-r--r--) y 755 permisos (rwxr-xr-x) para directorios y archivos ejecutables.

En Linux y macOS, utilice el comando chmod para cambiar los permisos de los archivos y directorios del paquete de implementación. Por ejemplo, para brindarle a un archivo ejecutable los permisos correctos, ejecute el siguiente comando.

chmod 755 <filepath>

Para cambiar los permisos de los archivos en Windows, consulte Set, View, Change, or Remove Permissions on an Object en la documentación de Microsoft Windows.

Imágenes de contenedor

Puede empaquetar su código y dependencias como una imagen contenedor usando herramientas como la interfaz de línea de comandos (CLI) de Docker. A continuación, puede cargar la imagen en su registro de contenedores alojado en Amazon Elastic Container Registry (Amazon ECR).

Cuando se invoca la función, Lambda implementa la imagen del contenedor en un entorno de ejecución. Lambda inicializa cualquier extensión y luego ejecuta el código de inicialización de la función (el código fuera del controlador principal). Tenga en cuenta que la duración de la inicialización de la función se incluya en el tiempo de ejecución facturado.

Lambda luego ejecuta la función mediante una llamada al punto de entrada de código especificado en la configuración de la función (ajustes de imagen de contenedor ENTRYPOINT y CMD).

AWS proporciona un conjunto de imágenes base de código abierto que puede usar para crear la imagen contenedor para su código de función. También puede utilizar imágenes base alternativas de otros registros de contenedores. AWS también proporciona un cliente de tiempo de ejecución de código abierto que agregue a su imagen base alternativa para que sea compatible con el servicio de Lambda.

Además, AWS proporciona un emulador de interfaz de tiempo de ejecución para que pueda probar sus funciones localmente utilizando herramientas como la CLI de Docker.

nota

Cada imagen de contenedor se crea para que sea compatible con una de las arquitecturas del conjunto de instrucciones que Lambda admite. Lambda proporciona imágenes base para cada una de las arquitecturas del conjunto de instrucciones, así como también proporciona imágenes base compatibles con ambas arquitecturas.

La imagen que cree para su función debe tener como destino solo a una de las arquitecturas.

No hay ningún cargo adicional por empaquetar e implementar funciones como imágenes de contenedor. Cuando se invoca una función implementada como imagen contenedor, se paga por las solicitudes de invocación y la duración de la ejecución. Usted incurre en cargos relacionados con el almacenamiento de las imágenes de su contenedor en Amazon ECR. Para obtener más información, consulte los Precios de Amazon ECR.

Seguridad de imagen

Cuando Lambda descarga por primera vez la imagen contenedor desde su fuente original (Amazon ECR), la imagen del contenedor se optimiza, encripta y almacena utilizando métodos de cifrado convergente autenticados. Todas las claves necesarias para descifrar los datos del cliente están protegidas mediante claves administradas por el cliente de AWS KMS. Para realizar un seguimiento y auditar el uso de las claves administradas por el cliente, puede ver los registros de AWS CloudTrail.