- Computación›
- AWS Lambda›
- Preguntas frecuentes
Preguntas frecuentes sobre AWS Lambda
Temas de la página
Aspectos generalesAspectos generales
P: ¿Qué es AWS Lambda?
P: ¿Qué es la informática sin servidores?
La informática sin servidor permite crear y ejecutar aplicaciones y servicios sin tener que preocuparse de los servidores. Con la informática sin servidor, su aplicación continúa ejecutándose en servidores, pero AWS se encarga de administrarlos. En el corazón de la informática sin servidores se encuentra AWS Lambda, que le permite ejecutar su código sin aprovisionar ni administrar servidores.
P: ¿Qué eventos puede activar una función de AWS Lambda?
Consulte nuestra documentación para ver la lista completa de orígenes de eventos.
P: ¿Cuándo debería utilizar AWS Lambda en lugar de Amazon EC2?
Amazon Web Services ofrece un conjunto de servicios informáticos para satisfacer una serie de necesidades.
Amazon EC2 ofrece flexibilidad, con una amplia gama de tipos de instancias y la opción de personalizar la configuración del sistema operativo, la red y la seguridad, así como la pila completa de software, con lo que es posible trasladar fácilmente las aplicaciones existentes a la nube. Con Amazon EC2, el usuario es responsable de aprovisionar capacidad, monitorizar el estado y el desempeño de la flota y diseñar la escalabilidad y la tolerancia a errores. AWS Elastic Beanstalk ofrece un servicio fácil de usar para implementar y escalar aplicaciones web en el que se mantiene la propiedad y el control total sobre las instancias EC2 subyacentes. Amazon EC2 Container Service es un servicio de administración escalable que admite contenedores de Docker y permite ejecutar de manera sencilla aplicaciones distribuidas en un clúster administrado de instancias de Amazon EC2.
AWS Lambda facilita la ejecución de código como respuesta a eventos, como cambios en los buckets de Amazon S3, actualizaciones a una tabla de Amazon DynamoDB o eventos personalizados generados por las aplicaciones o los dispositivos. Con Lambda no tiene que aprovisionar sus propias instancias, ya que este servicio realiza por usted todas las actividades operativas y administrativas, como el aprovisionamiento de capacidad, el monitoreo del estado de la flota, la aplicación de parches de seguridad a los recursos de cómputo subyacentes, la implementación de código, la ejecución del frontend de un servicio web y el monitoreo y el registro del código. AWS Lambda ofrece un escalado sencillo y alta disponibilidad del código sin que sea necesario un esfuerzo adicional por su parte.
P: ¿Qué tipo de código puede ejecutarse en AWS Lambda?
P: ¿Qué lenguajes admite AWS Lambda?
AWS Lambda es compatible de forma nativa con Java, Go, PowerShell, Node.js, C#, Python y el código Ruby. Además, proporciona una API de tiempo de ejecución que permite utilizar cualquier lenguaje de programación adicional para crear las funciones. Consulte nuestra documentación sobre el uso de Node.js, Python, Java, Ruby, C#, Go y PowerShell.
P: ¿Puedo obtener acceso a la infraestructura en la que se ejecuta AWS Lambda?
P: ¿De qué forma AWS Lambda aísla el código?
P: ¿De qué forma AWS Lambda protege el código?
P: ¿Qué regiones de AWS están disponibles para AWS Lambda?
Consulte la tabla de regiones de infraestructura global de AWS.
Funciones de AWS Lambda
P: ¿Qué es una función de AWS Lambda?
P: ¿AWS Lambda reutilizará las instancias de una función?
Para mejorar el desempeño, AWS Lambda puede optar por mantener una instancia de la función y reutilizarla para satisfacer una solicitud posterior, en lugar de crear una copia nueva. Para obtener más información acerca de cómo Lambda reutiliza instancias de funciones, consulte la documentación. No obstante, el código no debe asumir que siempre debe proceder de este modo.
P: ¿Qué sucede si necesito espacio de desecho en disco para la función de AWS Lambda?
Puede configurar cada función de Lambda con su propio almacenamiento efímero entre 512 MB y 10 240 MB, en incrementos de 1 MB. El almacenamiento efímero está disponible en el directorio /tmp de cada función.
Cada función tiene acceso a 512 MB de almacenamiento sin costo adicional. Si configura sus funciones con más de 512 MB de almacenamiento efímero, se le cobrará según la cantidad de almacenamiento que configure y el tiempo de ejecución de su función, medido en incrementos de 1 ms. A modo de comparación, en la región Este de EE. UU. (Ohio), el precio del almacenamiento efímero de AWS Fargate es de 0,000111 USD por GB/hora o 0,08 USD por GB/mes. El precio por volumen de almacenamiento gp3 de Amazon EBS en la región Este de EE. UU. (Ohio) es de 0,08 USD por GB/mes. El precio del almacenamiento efímero de AWS Lambda es de 0,0000000309 USD por GB/segundo o 0,000111 USD por GB/hora y 0,08 USD por GB/mes. Para obtener más información, consulte los precios de AWS Lambda.
P: ¿Cómo configuro mi aplicación para utilizar el almacenamiento efímero de AWS Lambda?
P: ¿El almacenamiento efímero de AWS Lambda está cifrado?
P: ¿Qué métricas puedo utilizar para monitorear mi uso del almacenamiento efímero de AWS Lambda?
Puede utilizar las métricas de AWS CloudWatch Lambda Insights para monitorear su uso del almacenamiento efímero. Para obtener más información, consulte la documentación de AWS CloudWatch Lambda Insights.
P: ¿Cuándo debo utilizar el almacenamiento efímero de Amazon S3, Amazon EFS o AWS Lambda para mis aplicaciones sin servidor?
Si su aplicación necesita un almacenamiento persistente y duradero, considere utilizar Amazon S3 o Amazon EFS. Si su aplicación requiere el almacenamiento de datos que necesita el código en una única invocación de función, considere usar el almacenamiento efímero de AWS Lambda como caché transitorio. Para obtener más información, consulte Elegir entre opciones de almacenamiento de datos de AWS Lambda en aplicaciones web.
P: ¿Puedo utilizar almacenamiento efímero mientras la simultaneidad aprovisionada está habilitada para mi función?
Sí. Sin embargo, si su aplicación necesita almacenamiento persistente, considere utilizar Amazon EFS o Amazon S3. Cuando habilita la simultaneidad aprovisionada para la función, su código de inicialización se ejecuta durante la asignación y cada pocas horas, ya que las instancias en ejecución de la función se reciclan. Puede ver el tiempo de inicialización en los registros y rastreos después de que una instancia procesa una solicitud. Sin embargo, la inicialización se factura incluso si la instancia nunca procesa una solicitud. Este comportamiento de inicialización de simultaneidad aprovisionada puede afectar la forma en que la función interactúa con los datos que almacena en el almacenamiento efímero, incluso cuando la función no procesa solicitudes. Para obtener más información sobre la simultaneidad aprovisionada, consulte la documentación correspondiente.
P: ¿Cómo configuro mi aplicación para utilizar el almacenamiento efímero de AWS Lambda?
P: ¿El almacenamiento efímero de AWS Lambda está cifrado?
P: ¿Qué métricas puedo utilizar para monitorear mi uso del almacenamiento efímero de AWS Lambda?
Puede utilizar las métricas de AWS CloudWatch Lambda Insights para monitorear su uso del almacenamiento efímero. Para obtener más información, consulte la documentación de AWS CloudWatch Lambda Insights.
P: ¿Por qué las funciones de AWS Lambda no deben tener estado?
P: ¿Puedo usar subprocesos y procesos en el código de la función de AWS Lambda?
P: ¿Qué restricciones se aplican al código de la función de AWS Lambda?
P: ¿Cómo puedo crear una función de AWS Lambda con la consola de Lambda?
Si utiliza Node.js o Python, puede crear el código para la función con el editor de código de la consola de AWS Lambda, que permite crear y probar funciones, así como ver los resultados de las ejecuciones de funciones en un entorno sólido tipo IDE. Vaya a la consola para comenzar.
También puede comprimir el código (y cualquier biblioteca dependiente) en un archivo ZIP y cargarlo desde su entorno local mediante la consola de AWS Lambda, o bien especificar la ubicación de Amazon S3 en la que se encuentra el archivo ZIP. Las cargas no pueden tener un volumen superior a 50 MB (en formato comprimido). Puede utilizar el complemento de AWS Eclipse para diseñar e implementar funciones de Lambda en Java. Puede utilizar el complemento de Visual Studio para diseñar e implementar funciones de Lambda en C# y Node.js.
P: ¿Cómo puedo crear una función de AWS Lambda con la interfaz de línea de comandos (CLI) de Lambda?
Puede comprimir el código (y cualquier biblioteca dependiente) en un archivo ZIP y cargarlo desde su entorno local mediante la interfaz de línea de comandos (CLI) de AWS, o bien especificar la ubicación de Amazon S3 en la que se encuentra el archivo ZIP. Las cargas no pueden tener un volumen superior a 50 MB (en formato comprimido). Consulte la Guía de introducción a Lambda para comenzar.
P: ¿AWS Lambda admite las variables de entorno?
Sí. Puede crear y modificar variables de entorno de forma sencilla desde la consola, la CLI o los SDK de AWS Lambda. Para obtener más información sobre las variables de entorno, consulte la documentación.
P: ¿Puedo almacenar información confidencial en las variables de entorno?
Para la información confidencial, como contraseñas de bases de datos, recomendamos que utilice el cifrado del cliente con AWS Key Management Service y almacene los valores resultantes como texto cifrado en su variable de entorno. Para descifrar los valores, deberá incluir lógica en su código de la función AWS Lambda.
P: ¿Cómo puedo administrar las funciones de AWS Lambda?
Puede ajustar y proteger los recursos asociados a su función de Lambda mediante la API o la consola de Lambda. Para obtener más información, consulte la documentación.
P: ¿Puedo compartir el código entre las funciones?
Sí, puede empaquetar cualquier código (marcos, SDK, bibliotecas, etc.) como una capa de Lambda, y administrarlo y compartirlo fácilmente a través de múltiples funciones.
P: ¿Cómo puedo monitorear una función de AWS Lambda?
AWS Lambda monitorea automáticamente sus funciones e informa las métricas en tiempo real a través de Amazon CloudWatch, como las solicitudes totales, el uso simultáneo a nivel de funciones y a nivel de cuentas, la latencia, las tasas de error y las solicitudes limitadas. Puede consultar las estadísticas de cada una de sus funciones de Lambda mediante la consola de Amazon CloudWatch o la consola de AWS Lambda. También puede realizar llamadas a API de monitorización de terceros en la función de Lambda.
Consulte la resolución de problemas con métricas de CloudWatch para obtener más información. El uso de las métricas integradas de Lambda conlleva los cargos estándar de AWS Lambda.
P: ¿Cómo puedo solucionar los problemas derivados de errores en una función de AWS Lambda?
AWS Lambda se integra automáticamente con Amazon CloudWatch logs y crea un grupo de registros para cada función de Lambda y ofrece entradas básicas de registros de eventos del ciclo de vida de la aplicación, incluido el registro de los recursos consumidos cada vez que se usa esa función. Puede agregar declaraciones de registro adicionales al código con facilidad. También puede realizar llamadas a API de registro de terceros en la función de Lambda. Consulte la resolución de problemas con las funciones de Lambda para obtener más información. Se aplicarán las tarifas de los logs de Amazon CloudWatch.
P: ¿Cómo puedo escalar una función de AWS Lambda?
P: ¿Cómo se asignan recursos informáticos a una función de AWS Lambda?
En el modelo de recursos de AWS Lambda, debe elegir la cantidad de memoria que desea para su función y, posteriormente, se asignará el volumen proporcional de potencia de CPU y de otros recursos. Por ejemplo, si selecciona 256 MB de memoria, se asigna aproximadamente el doble de la potencia de CPU a la función de Lambda que al solicitar 128 MB de memoria y la mitad de la potencia de CPU que al seleccionar 512 MB de memoria. Para obtener más información, consulte Configuración de las funciones.
Puede configurar la memoria de 128 MB a 10 240 MB.
P: ¿Cuándo debería utilizar las funciones de AWS Lambda con más de 3008 MB de memoria?
P: ¿Durante cuánto tiempo puede ejecutarse una función de AWS Lambda?
P: ¿Cómo se cobra el uso de las funciones de AWS Lambda?
Los precios de AWS Lambda se basan en un modelo de pago por uso. Consulte la página de precios de AWS Lambda para obtener más detalles.
P: ¿Puedo ahorrar dinero con Compute Savings Plan en AWS Lambda?
P: ¿AWS Lambda admite el control de versiones?
Sí. De forma predeterminada, cada función de AWS Lambda tiene una versión única y actual del código. Los clientes de la función de Lambda pueden llamar a una versión específica u obtener la implementación más reciente. Consulte nuestra documentación sobre el control de versiones de las funciones de Lambda.
P: ¿Cuánto tiempo debe transcurrir para poder llamar a la función de AWS Lambda después de cargar el código?
P: ¿Puedo utilizar mi propia versión de una biblioteca compatible?
P: ¿Cómo funcionan los niveles de precios?
AWS Lambda ofrece niveles de precios con descuento para la duración bajo demanda mensual de la característica que supera ciertos umbrales. Los niveles de precios están disponibles para las características que se ejecutan en arquitecturas x86 y Arm. Los niveles de precios de Lambda se aplican a la duración bajo demanda mensual agregada de sus características que se ejecutan en la misma arquitectura (x86 o Arm, respectivamente), en la misma región y dentro de la cuenta. Si utiliza la facturación unificada en AWS Organizations, los niveles de precios se aplican a la duración mensual agregada de sus características que se ejecutan en la misma arquitectura, en la misma región y en todas las cuentas de la organización. Por ejemplo, si ejecuta características x86 de Lambda en la región Este de EE. UU. (Ohio), pagará 0,0000166667 USD por cada GB/segundo durante los primeros 6 mil millones de GB/segundo por mes, 0,0000150000 USD por cada GB/segundo para los próximos 9 mil millones de GB/segundo por mes y 0,0000133334 USD por cada GB/segundo que exceda los 15 mil millones de GB/segundo por mes en esa región. El precio de las solicitudes, la simultaneidad aprovisionada y la duración de esta no se modifican. Para obtener más información, consulte los precios de AWS Lambda
P: ¿Puedo aprovechar los niveles de precios y Savings Plans para computación?
Sí. El uso de Lambda que cubre el compromiso de Savings Plan por hora se factura según el descuento y la tarifa del CSP aplicables. El uso restante que no cubra el contrato se facturará según la tarifa correspondiente al nivel de la duración de la función de agregación mensual.
Uso de AWS Lambda para procesar eventos de AWS
P: ¿Qué es un origen de eventos?
P: ¿Qué orígenes de eventos se pueden usar con AWS Lambda?
Consulte nuestra documentación para ver la lista completa de orígenes de eventos.
P: ¿Cómo se representan los eventos en AWS Lambda?
Los eventos se transfieren a una función de Lambda como un parámetro de entrada de evento. En el caso de las fuentes de eventos en las que los eventos llegan por lotes, como Amazon SQS, Amazon Kinesis y Amazon DynamoDB Streams, el parámetro de eventos puede incluir varios eventos en una sola llamada, en función del tamaño del lote que solicite. Para obtener más información sobre las notificaciones de eventos de Amazon S3, visite Configuración de notificaciones para eventos de Amazon S3. Para obtener más información sobre Amazon DynamoDB Streams, visite la Guía para desarrolladores de DynamoDB Streams. Para obtener más información sobre cómo invocar funciones de Lambda mediante Amazon SNS, consulte la Guía para desarrolladores de Amazon SNS. Para obtener más información sobre los eventos de Amazon Cognito, consulte Amazon Cognito. Para obtener más información sobre los registros de AWS CloudTrail y cómo auditar las llamadas a la API en los servicios de AWS, consulte AWS CloudTrail.
P: ¿Qué debo hacer para que una función de AWS Lambda responda a los cambios introducidos en un bucket de Amazon S3?
P: ¿Qué debo hacer para que una función de AWS Lambda responda a las actualizaciones de una tabla de Amazon DynamoDB?
P: ¿Qué debo hacer para que una función de AWS Lambda procese registros en una transmisión de Amazon Kinesis?
P: ¿Cómo procesa AWS Lambda datos de Amazon Kinesis Streams y Amazon DynamoDB Streams?
P: ¿Cómo elegir entre AWS Lambda y Amazon Kinesis Data Analytics para las necesidades de análisis?
AWS Lambda permite realizar agregaciones basadas en el tiempo (como recuento, máximo, suma, promedio, etc.) en periodos breves de hasta 15 minutos para sus datos en Amazon Kinesis o Amazon DynamoDB Streams en una sola partición lógica. Esto ofrece la posibilidad de configurar fácilmente análisis sencillos para la aplicación basada en eventos sin aumentar la complejidad a nivel de arquitectura, ya que la lógica empresarial y de análisis se pueden ubicar en la misma función. Lambda permite realizar agregaciones en una ventana de saltos de tamaño constante de 15 minutos como máximo, según la marca temporal del evento. Amazon Kinesis Data Analytics permite crear aplicaciones de análisis más complejas que admiten opciones de procesamiento flexibles y una sólida tolerancia a errores con procesamiento único sin duplicados y análisis que se pueden realizar en una secuencia de datos completa en múltiples particiones lógicas. Con KDA, puede analizar datos en varios tipos de ventanas de agregación (ventana de saltos de tamaño constante, ventana escalonada, ventana deslizante, ventana de sesión) mediante el uso del tiempo del evento o el tiempo de procesamiento.
AWS Lambda | Amazon KDA | |
---|---|---|
Ventana de saltos de tamaño constante | Sí | Sí |
Ventana escalonada | No | Sí |
Ventana deslizante | No | Sí |
Ventana de sesión | No | Sí |
Enriquecimiento | No | Sí |
Tablas de referencia y entradas conjuntas | No | Sí |
Flujo de entrada dividido | No | Sí |
Procesamiento único | No | Sí |
Tiempo máximo de la ventana | 15 minutos | Sin límite |
Alcance de la agregación | Partición/fragmento | Flujo |
Semántica del tiempo | Tiempo del evento | Tiempo del evento, tiempo de procesamiento |
P: ¿Qué debo hacer para que una función de AWS Lambda responda a las notificaciones enviadas por Amazon Simple Notification Service (SNS)?
P: ¿Qué debo hacer para que una función de AWS Lambda responda a los emails enviados por Amazon Simple Email Service (SES)?
P: ¿Qué debo hacer para que una función de AWS Lambda responda a las alarmas de Amazon CloudWatch?
En primer lugar, configure la alarma para que envíe notificaciones de Amazon SNS. A continuación, en la consola de AWS Lambda, seleccione una función de Lambda y asóciela con ese tema de Amazon SNS. Consulte la Amazon CloudWatch Developer Guide para obtener más información sobre la configuración de alarmas de Amazon CloudWatch.
P: ¿Qué debo hacer para que una función de AWS Lambda responda a cambios en los datos de usuarios o dispositivos administrados por Amazon Cognito?
En la consola de AWS Lambda, seleccione la función que desee que se active cuando se sincronice cualquier conjunto de datos asociado con un grupo de identidades de Amazon Cognito. Esta misma funcionalidad también se encuentra disponible a través del SDK y la CLI de AWS. Visite la página de Amazon Cognito para obtener más información acerca de cómo utilizar Amazon Cognito para compartir y sincronizar datos en los dispositivos de un usuario.
P: ¿Cómo puede mi aplicación activar una función de AWS Lambda directamente?
Puede invocar una función de Lambda mediante el uso de un evento personalizado a través de la API de invocación de AWS Lambda. Solo el propietario de la función u otra cuenta de AWS a la que el propietario haya concedido permiso pueden invocar la función. Consulte la Guía para desarrolladores de Lambda para obtener más información.
P: ¿Qué latencia tiene la invocación de una función de AWS Lambda para responder a un evento?
P: ¿Cómo se crea un entorno backend móvil con AWS Lambda?
Cargue el código que desea que AWS Lambda ejecute y, a continuación, invóquelo desde la aplicación móvil mediante el SDK de AWS Lambda incluido en el SDK para móviles de AWS. Puede efectuar llamadas directas (síncronas) para recuperar o comprobar los datos en tiempo real, así como llamadas asíncronas. También puede definir una API personalizada mediante Amazon API Gateway e invocar las funciones de Lambda a través de cualquier cliente compatible con REST. Para obtener más información sobre el SDK para móviles de AWS, visite la página del AWS Mobile SDK. Para obtener más información sobre Amazon API Gateway, visite la página de Amazon API Gateway.
P: ¿Cómo puedo invocar una función de AWS Lambda a través de HTTPS?
P: ¿Cómo puede la función de AWS Lambda personalizar su comportamiento de acuerdo con el dispositivo y la aplicación que efectúan la solicitud?
P: ¿Cómo puede la función de AWS Lambda personalizar su comportamiento de acuerdo con la identidad del usuario final de una aplicación?
P: ¿Cómo puedo crear una habilidad de Alexa mediante AWS Lambda?
P: ¿Qué sucede si la función experimenta un error al procesar un evento?
Uso de AWS Lambda para crear aplicaciones
P: ¿Qué es una aplicación sin servidor?
P: ¿Cómo puedo implementar y administrar una aplicación sin servidor?
P: ¿Cómo puedo encontrar aplicaciones sin servidor existentes desarrolladas por la comunidad de AWS?
Puede elegir a partir de una colección de aplicaciones sin servidor publicadas por desarrolladores, compañías y socios de la comunidad de AWS con el servicio Repositorio de aplicaciones sin servidor de AWS. Una vez que haya encontrado una aplicación, puede configurarla e implementarla directamente desde la consola de Lambda.
P: ¿Cómo puedo automatizar la implementación de una aplicación sin servidor?
Puede automatizar el proceso de lanzamiento de la aplicación sin servidor con AWS CodePipeline y AWS CodeDeploy. CodePipeline es un servicio de entrega continua que permite modelar, visualizar y automatizar los pasos necesarios para lanzar la aplicación sin servidor. CodeDeploy ofrece un motor de automatización de implementaciones para las aplicaciones basadas en Lambda. CodeDeploy le permite organizar implementaciones de acuerdo con metodologías de prácticas recomendadas, como las implementaciones lineales y de valor controlado. Además, lo ayuda a definir las medidas necesarias para verificar que el código implementado recientemente sea seguro, estable y esté listo para implementarse plenamente en producción.
Para obtener más información sobre CI/CD sin servidor, consulte nuestra documentación.
P: ¿Cómo puedo comenzar a crear una aplicación sin servidor?
Para comenzar, visite la consola de AWS Lambda y descargue uno de nuestros proyectos. El archivo que descargue contendrá un archivo de AWS SAM file (que define los recursos de AWS de la aplicación) y un archivo .ZIP (que incluye el código de la función). A continuación, puede usar los comandos de AWS CloudFormation para empaquetar e implementar la aplicación sin servidor que acaba de descargar. Para obtener más detalles, consulte nuestra documentación.
P: ¿Cómo puedo coordinar llamadas entre varias funciones de AWS Lambda?
Puede utilizar AWS Step Functions para coordinar una serie de funciones de AWS Lambda en un orden específico. Puede invocar numerosas funciones de Lambda de manera secuencial, pasando la salida de una a otra, y/o simultáneamente, y Step Functions mantendrá el estado durante las ejecuciones.
P: ¿Cómo soluciono problemas de una aplicación sin servidor?
Puede habilitar la función Lambda para el rastreo con AWS X-Ray. Para ello, debe añadir permisos de X-Ray al rol de ejecución de la función de Lambda y cambiar el “modo de rastreo” de la función a “activo”. Cuando X-Ray está habilitado para la función Lambda, AWS Lambda emitirá información de rastreo a X-Ray con respecto a la sobrecarga del servicio Lambda incurrida al invocar la función. Esto le proporcionará información sobre la sobrecarga del servicio Lambda, el tiempo de inicialización de la función y el tiempo de ejecución de la función. Además, puede incluir el SDK de X-Ray en el paquete de implementación Lambda para crear sus propios segmentos de rastreo, anotar los rastreos o ver segmentos de rastreo para llamadas descendentes realizadas desde su función Lambda. Los SDK de X-Ray están actualmente disponibles para Node.js y Java. Consulte la sección sobre Resolución de problemas de aplicaciones basadas en Lambda para obtener más información. Se aplicarán las tarifas de AWS X-Ray.
P: ¿Puedo crear aplicaciones sin servidor que se conecten a bases de datos relacionales?
Sí. Puede crear aplicaciones sin servidor altamente escalables y seguras basadas en Lambda que se conectan a bases de datos relacionales mediante el Amazon RDS Proxy, un proxy de base de datos con alta disponibilidad que administra miles de conexiones simultáneas a bases de datos relacionales. Actualmente, el proxy de RDS admite las bases de datos Aurora y MySQL. Puede comenzar a utilizar el proxy de RDS a través de la consola de Amazon RDS o la consola de AWS Lambda. Las aplicaciones sin servidor que utilizan grupos de conexiones completamente administrados del proxy de RDS se facturarán según los precios del proxy de RDS.
P: ¿Cómo se consigue la licencia de AWS SAM?
La especificación es de código abierto bajo Apache 2.0, con lo que es posible para usted y otras personas adoptar e incorporar AWS SAM a herramientas de creación, implementación, monitoreo y administración con una licencia que admite el uso comercial. Aquí puede acceder al repositorio de AWS SAM en GitHub.
Compatibilidad con imágenes de contenedor
P: ¿Qué es la compatibilidad con imágenes de contenedor para AWS Lambda?
P: ¿Cómo puedo utilizar la compatibilidad con imágenes de contenedor para AWS Lambda?
P: ¿Qué tipos de imágenes de contenedor se admiten?
P: ¿Qué imágenes base puedo usar?
P: ¿Qué herramientas de contenedor puedo usar para empaquetar e implementar funciones como imágenes de contenedor?
P: ¿Qué características de AWS Lambda están disponibles para las funciones implementadas como imágenes de contenedor?
P: ¿AWS Lambda aplicará parches y actualizará mi imagen de contenedor implementada?
P: ¿Cuáles son las diferencias entre las funciones creadas con archivos ZIP y con imágenes de contenedor?
Hay tres diferencias principales entre las funciones creadas con archivos ZIP y con imágenes de contenedor:
- Las funciones creadas con archivos ZIP tienen un tamaño máximo de paquete de código de 250 MB descomprimido, mientras que las creadas con imágenes de contenedor tienen un tamaño máximo de 10 GB.
- Lambda utiliza Amazon ECR como almacenamiento de código subyacente para funciones definidas como imágenes de contenedor, por lo que es posible que una función no se pueda invocar cuando la imagen subyacente se elimina de ECR.
- A las funciones ZIP se les aplican parches automáticamente para obtener las últimas correcciones de errores y seguridad en tiempo de ejecución. Las funciones definidas como imágenes de contenedores son inmutables y los clientes son responsables de los componentes empaquetados en su función. Los clientes pueden aprovechar las imágenes base que AWS proporciona y actualiza periódicamente para la seguridad y la corrección de errores, con los parches más recientes disponibles.
P: ¿Existe alguna diferencia de rendimiento entre las funciones definidas como zip y las imágenes de contenedor?
P: ¿Cómo se me cobrará por implementar funciones de Lambda como imágenes de contenedor?
No hay ningún cargo adicional por empaquetar e implementar funciones como imágenes de contenedor en AWS Lambda. Cuando invoca su función implementada como una imagen de contenedor, paga el precio habitual por las solicitudes y la duración de la ejecución. Para obtener más información, consulte Precios de AWS Lambda. Se le cobrará por almacenar las imágenes de contenedor en Amazon ECR a los precios estándar de ECR. Para obtener más información, consulte Precios de Amazon ECR.
P: ¿Qué es el emulador de interfaz de tiempo de ejecución (RIE) de Lambda?
El emulador de interfaz de versión ejecutable es un proxy para la API Runtime de Lambda que permite a los clientes probar localmente la función de Lambda empaquetada como una imagen de contenedor. Es un servidor web ligero que convierte las solicitudes HTTP en eventos JSON y emula la API Runtime de Lambda. Permite probar localmente las funciones con herramientas conocidas, como cURL y la CLI de Docker (al probar funciones empaquetadas como imágenes de contenedor). También simplifica la ejecución de la aplicación en servicios informáticos adicionales. Es posible incluir el emulador de interfaz de tiempo de ejecución de Lambda en la imagen de contenedor para que acepte solicitudes HTTP de forma nativa, en lugar de los eventos JSON necesarios para la implementación en Lambda. Este componente no emula el organizador de Lambda ni las configuraciones de seguridad y autenticación. El emulador de interfaz de tiempo de ejecución es de código abierto en GitHub. Puede comenzar al descargarlo e instalarlo en su equipo local.
P: ¿Por qué necesito el emulador de interfaz de versión ejecutable (RIE) de Lambda durante las pruebas locales?
P: ¿Qué comportamientos de funciones se pueden probar de manera local con el emulador?
P: ¿Cómo me ayuda el emulador de interfaz de tiempo de ejecución (RIE) a ejecutar mi imagen compatible de Lambda en servicios informáticos adicionales?
Los clientes pueden agregar el emulador de interfaz de tiempo de ejecución como punto de entrada a la imagen de contenedor o empaquetarlo como un contenedor de tipo sidecar para garantizar que la imagen de contenedor ahora acepte solicitudes HTTP en lugar de eventos JSON. Esto simplifica los cambios necesarios para ejecutar la imagen de contenedor en servicios informáticos adicionales. Los clientes serán responsables de garantizar que siguen todas las prácticas recomendadas de seguridad, rendimiento y simultaneidad en el entorno elegido. El RIE viene empaquetado previamente en las imágenes proporcionadas por AWS Lambda y está disponible de forma predeterminada en la CLI de AWS SAM. Los proveedores de imágenes base pueden utilizar la documentación para proporcionar la misma experiencia para las imágenes base.
P: ¿Cómo puedo implementar mi aplicación en contenedores existente en AWS Lambda?
Puede implementar una aplicación en contenedores en AWS Lambda si cumple los siguientes requisitos:
- La imagen de contenedor debe implementar la API Runtime de Lambda. Hemos puesto a disposición general un conjunto de paquetes de software de código abierto, clientes de interfaz de tiempo de ejecución (RIC), que implementan la API Runtime de Lambda, lo que permite ampliar la compatibilidad de Lambda con sus imágenes base preferidas.
- La imagen de contenedor debe poder ejecutarse en un sistema de archivos de solo lectura. Su código de función puede acceder a un almacenamiento de directorio de escritura /tmp de 512 MB. Si utiliza una imagen que requiere un directorio raíz de escritura, configúrelo para escribir en el directorio /tmp.
- El usuario predeterminado de Lambda puede leer los archivos necesarios para la ejecución del código de la función. Lambda define un usuario de Linux predeterminado con permisos mínimos que respeta las prácticas recomendadas de seguridad. Verifique que el código de la aplicación no dependa de archivos restringidos por otros usuarios de Linux para su ejecución.
- Es una imagen de contenedor basada en Linux.
AWS Lambda Snapstart
P: ¿Qué es AWS Lambda SnapStart?
AWS SnapStart puede mejorar el rendimiento de inicio de varios segundos a tan solo menos de un segundo para las aplicaciones sensibles a la latencia. SnapStart crea una instantánea del estado inicializado de la memoria (y el disco) de la función y almacena en caché esta instantánea para un acceso de baja latencia. Cuando se invoca la función posteriormente, Lambda reanuda los entornos de ejecución a partir de esta instantánea preinicializada, en lugar de inicializarlos desde cero, lo que mejora la latencia de inicio. Para garantizar la resiliencia, Lambda mantiene copias en caché de la instantánea y les aplica automáticamente actualizaciones de software, como actualizaciones de versión ejecutable y parches de seguridad.
P: ¿Cómo configuro una función de Lambda para que utilice Lambda SnapStart?
Lambda SnapStart es una configuración sencilla de nivel de función que puede habilitarse para funciones nuevas y existentes mediante la API de Lambda, la Consola de administración de AWS, la interfaz de la línea de comandos (CLI) de AWS, AWS SDK, Cloud Development Kit (CDK) de AWS, AWS CloudFormation y el modelo de aplicaciones sin servidor (SAM) de AWS. Al configurar Lambda SnapStart, cada versión de una función que se publique a partir de entonces se beneficia de la mejora del rendimiento de inicio que ofrece Lambda SnapStart. Para obtener más información acerca de Lambda SnapStart, consulte la documentación.
P: ¿Cómo elijo entre Lambda SnapStart y la simultaneidad aprovisionada (PC)?
Lambda SnapStart es una optimización del rendimiento que ayuda a que sus funciones consigan tiempos de inicio hasta más rápidos al reducir la latencia variable en la que se incurre durante la ejecución del código de inicialización único. Aunque Lambda SnapStart reduce la latencia de inicio, funciona como una optimización de mejor esfuerzo y no garantiza la eliminación de los arranques en frío. Si su aplicación tiene requisitos estrictos de latencia y requiere tiempos de arranque de milisegundos de dos dígitos, le recomendamos que utilice la PC.
P: ¿Qué versiones ejecutables admite Lambda SnapStart?
Lambda SnapStart admite varias versiones ejecutables, incluidas Java 11 (y versiones más recientes), Python 3.12 (y versiones más recientes) y .NET 8 (y versiones más recientes). Las futuras versiones de las versiones ejecutables serán compatibles una vez que se publiquen. Para conocer todos los tiempos de ejecución admitidos por Lambda, consulte la documentación sobre los tiempos de ejecución de Lambda.
P: ¿Puedo habilitar tanto Lambda SnapStart como la PC en la misma función?
P: ¿Puedo configurar una función de Lambda SnapStart con una nube virtual privada (VPC)?
Sí. Puede configurar una función de Lambda SnapStart para acceder a los recursos de una nube virtual privada (VPC). Para más información sobre cómo configurar una función con una VPC, consulte la documentación de Lambda.
P: ¿Puedo configurar Lambda SnapStart tanto en arquitecturas x86 como Arm?
Sí. Puede configurar Lambda SnapStart para las funciones que se ejecutan en arquitecturas x86 y Arm.
P: ¿Puedo habilitar Lambda SnapStart con Amazon Elastic File System (EFS)?
P: ¿Puedo habilitar Lambda SnapStart con un almacenamiento efímero (/tmp) mayor de 512 MB?
P: ¿El proceso de almacenamiento en caché y reanudación a partir de instantáneas introduce consideraciones de compatibilidad de software?
Sí. Si su código asume la singularidad del estado, debe evaluar la resistencia de este a las operaciones de instantánea (por ejemplo, a ser clonado y reanudado). Para obtener más información sobre las consideraciones de singularidad con Lambda SnapStart, consulte la documentación y el blogsobre la comprensión de la singularidad en las instantáneas de máquinas virtuales con Lambda SnapStart.
P: ¿Puedo ejecutar mi propio código antes de que se cree una instantánea o cuando se reanude la función desde la instantánea?
Sí. Puede implementar su propia lógica de software antes de crear una instantánea (generar un punto de control) y después de restaurar una instantánea con enlaces en tiempo de ejecución. Para obtener más información, consulte la documentación de Lambda SnapStart.
P: ¿Se me cobrará por Lambda SnapStart?
Sí, se le cobrará por almacenar en caché una instantánea durante el período en que la versión de su función esté activa, durante un mínimo de 3 horas y por milisegundo a partir de entonces. El precio depende del volumen de memoria asignado a la función. También se le cobrará cada vez que Lambda reanude un entorno de ejecución mediante la restauración de la instantánea, y el precio dependerá de la cantidad de memoria que asigne a la función. Para más información sobre los precios de SnapStart, consulte los Precios de AWS Lambda.
Los precios de SnapStart no se aplican a las versiones ejecutables gestionadas de Java compatibles, que solo pueden almacenar en caché una instantánea durante un máximo de 14 días.
P: ¿Cómo se calculan los cargos por duración de SnapStart?
Como todas las funciones de Lambda, los cargos por duración se aplican a las funciones de SnapStart. En el caso de las funciones configuradas con SnapStart, la duración incluye el tiempo que se tarda en cargar la versión ejecutable, cualquier código que se ejecute en un enlace de versión ejecutable y el código de inicialización ejecutado cuando se crean copias de instantáneas creadas para garantizar la resiliencia.
P: ¿Cuánto tiempo permanecen almacenadas en caché las instantáneas de la versión de la función publicada con Lambda SnapStart?
Con Lambda SnapStart para Python y.NET, las instantáneas de las funciones permanecen activas mientras la función esté activa. En el caso de las funciones de Java, la instantánea asociada a una función publicada caduca si permanece inactiva durante más de 14 días.
P: ¿Cómo puedo cifrar las instantáneas del entorno de ejecución inicializado creadas por Lambda SnapStart?
Las instantáneas se cifran por defecto con claves de AWS Key Management Service (KMS) exclusivas del cliente, propiedad del servicio Lambda y administradas por este. Los clientes también pueden cifrar las instantáneas con una clave de KMS propiedad del cliente y administrada por él.
P: ¿Existe un límite de tiempo para la ejecución de la inicialización de mi código con Lambda SnapStart?
Simultaneidad aprovisionada
P: ¿Qué es la simultaneidad aprovisionada de AWS Lambda?
P: ¿Cómo configuro y administro la simultaneidad aprovisionada?
Puede configurar la simultaneidad en su función a través de la consola de administración de AWS, la API de Lambda, la CLI de AWS y AWS CloudFormation. La forma más sencilla de beneficiarse de la simultaneidad aprovisionada es utilizar AWS Auto Scaling. Puede utilizar Auto Scaling de aplicaciones para configurar programas o hacer que Auto Scaling ajuste automáticamente el nivel de concurrencia aprovisionada en tiempo real a medida que cambia la demanda. Para obtener más información sobre la simultaneidad aprovisionada, consulte la documentación.
P: ¿Tengo que modificar mi código si quiero utilizar la simultaneidad aprovisionada?
P: ¿Qué cargos me cobrarán por la simultaneidad aprovisionada?
La simultaneidad aprovisionada agrega una dimensión de precios (de “simultaneidad aprovisionada”) para mantener las funciones activadas. Cuando está habilitada, paga por la cantidad de simultaneidad que configura y por el periodo por el que lo hace. Cuando su función se ejecuta mientras la simultaneidad aprovisionada está habilitada, también paga por las solicitudes y por la duración de la ejecución. Para obtener más información sobre los precios de la simultaneidad aprovisionada, consulte Precios de AWS Lambda.
P: ¿Cuándo debo utilizar la simultaneidad aprovisionada?
P: ¿Qué sucede si una función recibe invocaciones por encima del nivel de simultaneidad aprovisionada configurado?
Funciones de AWS Lambda con procesadores Graviton2
P: ¿Qué son las funciones de AWS Lambda con procesadores Graviton2?
P: ¿Por qué debería usar las funciones de AWS Lambda con procesadores Graviton2?
P: ¿Cómo configuro mis funciones para que se ejecuten en procesadores Graviton2?
P: ¿Cómo puedo implementar mi aplicación creada mediante funciones con procesadores Graviton2?
P: ¿Una aplicación puede utilizar tanto funciones con procesadores Graviton2 como con procesadores x86?
P: ¿Necesito una máquina de desarrollo basada en Arm para crear, construir y probar funciones impulsadas por los procesadores de Graviton2 localmente?
Los lenguajes interpretados como Python, Java y Node generalmente no requieren recopilación a menos que el código haga referencia a las bibliotecas que usan componentes específicos de la arquitectura. En esos casos, tendrá que proporcionar las bibliotecas orientadas a arm64. Para obtener más detalles, consulte la página Introducción a AWS Graviton. Los lenguajes no interpretados requerirán la compilación de su código para que esté orientado a arm64. Aunque los compiladores más modernos producirán código compilado para arm64, tendrá que implementarlo en un entorno basado en arm para probarlo. Para obtener más información sobre el uso de funciones de Lambda con Graviton2, consulte la documentación.
P: ¿Admite AWS Lambda imágenes de contenedor multiarquitectura?
¿Puedo crear capas de AWS Lambda que se dirijan a funciones con procesadores de AWS Graviton2?
P: ¿Qué lenguajes y tiempos de ejecución admiten las funciones Lambda que se ejecutan en los procesadores Graviton2?
En el momento del lanzamiento, los clientes pueden usar Python, Node.js, Java, Ruby, .Net Core, Custom Runtime (provided.al2) e imágenes OCI Base. Para obtener más información, consulte Versión ejecutable de AWS Lambda.
P: ¿Cuál es el precio de las funciones de AWS Lambda con procesadores AWS Graviton2? ¿Se aplica el nivel gratuito de AWS Lambda a las funciones impulsadas por Graviton2?
P: ¿Cómo puedo elegir entre ejecutar mis funciones en procesadores Graviton2 o en procesadores x86?
Cada carga de trabajo es única y le recomendamos a los clientes que prueben sus funciones para determinar la mejora en el rendimiento del precio que podrían ver. Para ello, recomendamos utilizar la herramienta AWS Lambda Power Tuning. Recomendamos comenzar con los backends web y móvil, los datos y el procesamiento de flujos cuando pruebe sus cargas de trabajo para determinar las posibles mejoras de rendimiento en el precio.
Amazon EFS para AWS Lambda
P: ¿Qué es Amazon EFS para AWS Lambda?
P: ¿Cómo configuro Amazon EFS para Lambda?
Los desarrolladores pueden conectar un sistema de archivos de EFS existente a una función de Lambda con facilidad mediante un Punto de acceso de EFS con la consola, la CLI o el SDK. Cuando se invoca la función por primera vez, el sistema de archivos se monta automáticamente y se pone a disposición del código de la función. Consulte la documentación para obtener más información.
P: ¿Tengo que configurar mi función con ajustes de VPC antes de usar el sistema de archivos de Amazon EFS?
P: ¿Quién debe utilizar Amazon EFS para Lambda?
P: ¿Los datos se cifran en tránsito?
P: ¿Los datos se cifran en reposo?
P: ¿Cómo se cobra Amazon EFS para AWS Lambda?
No se aplican cargos adicionales por utilizar Amazon EFS para AWS Lambda. Los clientes pagan el precio estándar para AWS Lambda y Amazon EFS. Cuando Lambda y EFS se usan en la misma zona de disponibilidad, los clientes no pagan las transferencias de datos. Sin embargo, si usan la interconexión de VPC para el acceso entre cuentas, se les cobrarán cargos por transferencia de datos. Para obtener más información, consulte Precios.
P: ¿Puedo asociar más de un sistema de archivos de Amazon EFS con mi función de AWS Lambda?
P: ¿Puedo usar el mismo sistema de archivos de Amazon EFS en varios contenedores, funciones e instancias?
URL de funciones de Lambda
P: ¿Admiten las funciones de AWS Lambda los puntos de conexión HTTP(S)?
P: ¿Cómo puedo configurar una URL de función de Lambda para mi función?
Puede configurar una URL de función para su función con la consola de administración de AWS, la API de AWS Lambda, la AWS CLI, AWS CloudFormation y AWS Serverless Application Model. Las URL de las funciones se pueden habilitar en la versión no autorizada $LATEST de su función o en cualquier alias de función. Para obtener más información sobre la configuración de una URL de función, consulte la documentación.
P: ¿Cómo puedo proteger la URL de mi función de Lambda?
P: ¿Cómo puedo invocar mi función con una URL de función de Lambda?
P: ¿Funcionan las URL de las funciones de Lambda con los alias y las versiones de las funciones?
Sí. Las funciones de Lambda se pueden habilitar en una función o un alias de función. Si no se especifica ningún alias, la URL apuntará a $LATEST de forma predeterminada. Las URL de las funciones no pueden dirigirse a la versión de una función individual.
P: ¿Puedo habilitar los dominios personalizados para la URL de mi función de Lambda?
P: ¿Se pueden usar las URL de la función de Lambda para invocar una función en una VPC?
P: ¿Cuánto cuesta el uso de las URL de las funciones de Lambda?
El uso de las URL de las funciones es gratuito. Paga el precio estándar para AWS Lambda. Para obtener más información, consulte los Precios de AWS Lambda.
Lambda@Edge
P: ¿Qué es Lambda@Edge?
Lambda@Edge permite ejecutar código en ubicaciones de AWS a nivel global sin aprovisionar ni administrar servidores, y responder así a los usuarios finales con la menor latencia de red. Simplemente tiene que cargar el código Node.js o Python en AWS Lambda y configurar la función para que se active como respuesta a solicitudes de Amazon CloudFront (es decir, cuando se reciba la solicitud de un lector, cuando una solicitud se reenvíe o se reciba del origen y antes de responder al usuario final). Después, el código estará listo para ejecutarse en ubicaciones de AWS a nivel global cuando se reciba una solicitud de contenido y ajustará la escala en función del volumen de solicitudes de CloudFront a nivel global. Para obtener más información al respecto, consulte nuestra documentación.
P: ¿Cómo se utiliza Lambda@Edge?
Para usar Lambda@Edge, basta con cargar su código en AWS Lambda y asociar una versión de función para que se active como respuesta a solicitudes de Amazon CloudFront. El código debe atenerse a los límites de servicio de Lambda@Edge. Actualmente, Lambda@Edge admite Node.js y Python para la invocación global por parte de eventos de CloudFront. Para obtener más información al respecto, consulte nuestra documentación.
P: ¿Cuándo debo utilizar Lambda@Edge?
Lambda@Edge está optimizado para casos de uso en los que la latencia es un factor importante, ya que los lectores finales están distribuidos globalmente. Toda la información que necesita para tomar una decisión debe estar disponible en el borde de CloudFront, dentro de la función y la solicitud. Por lo tanto, los casos de uso en los que desea tomar decisiones acerca de cómo proporcionar contenido en función de las características de los usuarios (p. ej., ubicación, dispositivo del cliente, etc.) ya se pueden ejecutar y proporcionar cerca de los usuarios sin tener que dirigirlos de vuelta a un servidor centralizado.
P: ¿Puedo implementar mis funciones de Lambda existentes para invocación global?
Puede asociar funciones de Lambda existentes con eventos de CloudFront para invocación global si la función cumple los límites y requisitos de servicio de Lambda@Edge. Aquí puede obtener más información sobre cómo actualizar las propiedades de su función.
P: ¿Qué eventos de Amazon CloudFront se pueden utilizar para activar funciones?
Sus funciones se activarán automáticamente como respuesta a los siguientes eventos de Amazon CloudFront:
- Solicitud del lector: este evento tiene lugar cuando un usuario final o un dispositivo en Internet realiza una solicitud HTTP(S) a CloudFront y la solicitud llega a la ubicación de borde más cercana a ese usuario.
- Respuesta del espectador: este evento tiene lugar cuando el servidor de CloudFront situado en el borde está listo para responder al usuario final o dispositivo que realizó la solicitud.
- Solicitud del origen: este evento tiene lugar cuando el servidor de CloudFront situado en el borde todavía no tiene el objeto solicitado en su caché, y la solicitud del lector está lista para enviarse al servidor web de origen del backend (p. ej., Amazon EC2, el equilibrador de carga de aplicaciones o Amazon S3).
- Respuesta del origen: este evento tiene lugar cuando el servidor de CloudFront situado en el borde recibe una respuesta del servidor web de origen del backend.
P: ¿Cuál es la diferencia entre AWS Lambda@Edge y usar AWS Lambda con Amazon API Gateway subyacente?
La diferencia es que API Gateway y Lambda son servicios regionales. La utilización de Lambda@Edge y Amazon CloudFront le permite ejecutar tareas lógicas en varias ubicaciones de AWS localizadas donde se encuentran los espectadores finales.
Escalabilidad y disponibilidad
P: ¿Cuál es la disponibilidad de las funciones de AWS Lambda?
P: ¿Permanecerán disponibles mis funciones de AWS Lambda si modifico el código o su configuración?
P: ¿Existe algún límite respecto a la cantidad de funciones de AWS Lambda que se pueden ejecutar simultáneamente?
No. AWS Lambda es un servicio diseñado para ejecutar numerosas instancias de las funciones simultáneamente. Sin embargo, AWS Lambda tiene una limitación controlada de seguridad predeterminada para el número de ejecuciones simultáneas por cuenta por región (consulte aquí para obtener información acerca de las limitaciones controladas de seguridad predeterminadas). También puede controlar el número máximo de ejecuciones simultáneas para las funciones individuales de AWS Lambda. De este modo, puede reservar un subconjunto del límite de simultaneidad de la cuenta para las funciones críticas o limitar las tasas de tráfico a los recursos de distribución.
Si desea enviar una solicitud para aumentar el límite de ejecución simultánea, puede utilizar las Service Quotas para solicitar una solicitud de aumento del límite.
P: ¿Qué sucede si mi cuenta excede el límite predeterminado de ejecuciones simultáneas?
Si excede la limitación, las funciones de AWS Lambda invocadas de manera sincrónica mostrarán un error de limitación (código de error 429). Las funciones de Lambda invocadas de manera asíncrona pueden absorber picos de tráfico razonables durante unos 15-30 minutos, tras los cuales se rechazarán los eventos entrantes por motivos de limitación. En el caso de que la función de Lambda se invoque como respuesta a eventos de Amazon S3, Amazon S3 podrían retenerse los eventos rechazados por AWS Lambda durante 24 horas para volver a intentar enviarlos. Los eventos de Amazon Kinesis Streams y Amazon DynamoDB Streams intentan reenviarse hasta que la función de Lambda tiene éxito o los datos vencen. Amazon Kinesis y Amazon DynamoDB Streams retienen los datos durante 24 horas.
P: ¿Se aplican los límites máximos de ejecución simultánea predeterminados en cada nivel de función?
El límite máximo de ejecución simultánea predeterminado se aplica a nivel de cuenta. Sin embargo, también puede establecer límites para funciones individuales (consulte aquí para obtener información sobre la simultaneidad reservada).
P: ¿Con qué rapidez se escalan mis funciones de AWS Lambda?
Cada función de Lambda invocada de forma sincrónica puede escalarse a una velocidad de hasta 1000 ejecuciones simultáneas cada 10 segundos. Si bien la velocidad de escalado de Lambda es adecuada para la mayoría de los casos de uso, es especialmente ideal para aquellos con picos de tráfico predecibles o impredecibles. Por ejemplo, el procesamiento de datos vinculado al SLA requeriría un escalado rápido y predecible para satisfacer la demanda de procesamiento. Del mismo modo, publicar artículos de noticias de última hora o ventas instantáneas podría generar niveles de tráfico impredecibles en un periodo de tiempo reducido. La velocidad de escalado de Lambda puede facilitar estos casos de uso sin configuraciones ni herramientas adicionales. Además, el límite de escalado de simultaneidad es un límite a nivel de función, lo que significa que cada función de la cuenta se escala de forma independiente de las demás funciones.
P: ¿Qué sucede si la función de Lambda experimenta un error al procesar un evento?
P: ¿Qué recursos puedo configurar como cola de mensajes fallidos para una función de Lambda?
P: ¿Qué sucede si las invocaciones de mi función de Lambda exceden la política disponible?
Si se excede la política de reintentos para invocaciones asíncronas, puede configurar una “cola de mensajes fallidos” (DLQ) en la que se colocará el evento. Si no existe ninguna DLQ, es posible que se rechace el evento. Si se excede la política de invocaciones basadas en transmisiones, los datos habrían vencido ya y por lo tanto se rechazarán.
Control de acceso y seguridad
P: ¿Cómo puedo permitir que una función de AWS Lambda tenga acceso a otros recursos de AWS?
El usuario puede conceder permisos a su función de Lambda para que obtenga acceso a otros recursos utilizando una función de IAM. AWS Lambda asume la función mientras ejecuta la función de Lambda, para que siempre tenga un control absoluto y seguro de los recursos de AWS concretos que puede utilizar. Consulte la sección de Configuración de AWS Lambda para obtener más información sobre las funciones.
P: ¿Cómo puedo controlar qué buckets de Amazon S3 pueden llamar a determinadas funciones de AWS Lambda?
Al configurar un bucket de Amazon S3 para que envíe mensajes a una función de AWS Lambda, se creará una regla de política de recursos que concederá el acceso. Consulte la Guía para desarrolladores de Lambda para obtener más información sobre las políticas de recursos y los controles de acceso para las funciones de Lambda.
P: ¿Cómo puedo controlar qué tabla de Amazon DynamoDB o qué transmisión de Amazon Kinesis puede sondear una función de AWS Lambda?
Los controles de acceso se administran a través del rol de la función Lambda. El rol que se asigna a la función de Lambda también determina los recursos que AWS Lambda puede sondear en su nombre. Consulte la Guía para desarrolladores de Lambda para obtener más información.
P: ¿Cómo puedo controlar qué cola de Amazon SQS puede sondear una función de AWS Lambda?
P: ¿Cómo accedo a los recursos de Amazon VPC desde mi función de AWS Lambda?
Puede habilitar las funciones de Lambda para acceder a los recursos de su VPC especificando la subred y el grupo de seguridad como parte de la configuración de la función. Las funciones de Lambda configuradas para obtener acceso a los recursos de una VPC determinada no tendrán acceso a Internet como configuración predeterminada. Para conceder Internet a estas funciones, utilice puertas de enlace de Internet. De forma predeterminada, las funciones de Lambda se comunican con los recursos de una VPC de doble pila a través de IPv4. Puede configurar sus funciones para acceder a los recursos de una VPC de doble pila a través de IPv6. Para obtener más información sobre las funciones de Lambda configuradas con VPC, consulte Lambda Private Networking with VPC.
P: ¿Qué es la firma de código para AWS Lambda?
La firma de código para AWS Lambda ofrece controles de confianza e integridad que permiten verificar que solo se implemente código inalterado de desarrolladores aprobados en las funciones de Lambda. Puede utilizar AWS Signer, un servicio de firma de código completamente administrado, para firmar digitalmente artefactos de código y configurar las funciones de Lambda para verificar las firmas en el despliegue. La firma de código para AWS Lambda actualmente solo está disponible para funciones empaquetadas como archivos ZIP.
P: ¿Cómo creo artefactos de código firmados digitalmente?
Puede crear artefactos de código firmados digitalmente mediante un Perfil de firma en la consola de AWS Signer, la API Signer, la CLI de SAM o AWS CLI. Para obtener más información, consulte la documentación de AWS Signer.
P: ¿Cómo se configuran las funciones de Lambda para habilitar la firma de código?
P: ¿Qué comprobaciones de firmas realiza AWS Lambda en la implementación?
AWS Lambda puede realizar las siguientes comprobaciones de firma durante la implementación:
• Firma alterada: esto ocurre si el artefacto de código se ha modificado desde el momento de la firma.
• Firma no coincidente: esto ocurre si el artefacto de código está firmado por un perfil de firma no aprobado.
• Firma vencida: esto ocurre si la firma ha pasado la fecha de vencimiento establecida.
• Firma revocada: esto ocurre si el propietario del perfil de firma revoca los trabajos de firma.
Para obtener más información, consulte la documentación de AWS Lambda.
P: ¿Puedo habilitar la firma de código para funciones existentes?
P: ¿El uso de la firma de código para AWS Lambda tiene algún costo adicional?
Usar la firma de código para AWS Lambda no tiene costo adicional. Paga el precio estándar para AWS Lambda. Para obtener más información, consulte Precios.
Controles de registro avanzados
P: ¿Qué controles de registro avanzados admite Lambda?
Para proporcionarle una experiencia de registro simplificada y mejorada de forma predeterminada, AWS Lambda ofrece controles de registro avanzados, como la capacidad de capturar de forma nativa los registros de funciones de Lambda en formato estructurado JSON, controlar el filtrado a nivel de registro de los registros de funciones de Lambda sin realizar ningún cambio en el código y personalizar el grupo de registros de Amazon CloudWatch al que Lambda envía los registros.
P: ¿Para qué puedo usar los controles de registro avanzados?
Puede capturar los registros de funciones de Lambda en formato estructurado JSON sin tener que utilizar sus propias bibliotecas de registro. Los registros estructurados en JSON facilitan la búsqueda, el filtrado y el análisis de grandes volúmenes de entradas de registro. Puede controlar el filtrado a nivel de registro de los registros de funciones de Lambda sin realizar ningún cambio en el código, lo que le permite elegir el nivel de granularidad de registro requerido para las funciones de Lambda sin tener que examinar grandes volúmenes de registros al depurar y solucionar errores. También puede establecer a qué grupo de registros de Amazon CloudWatch envíe los registros Lambda, lo que facilita la agregación de registros de varias funciones de una aplicación en un solo lugar. A continuación, puede aplicar políticas de seguridad, gobernanza y retención a los registros a nivel de aplicación, en lugar de hacerlo de forma individual a cada función.
P: ¿Cómo utilizo los controles de registro avanzados?
Puede especificar controles de registro avanzados para sus funciones de Lambda mediante la API de AWS Lambda, la consola de AWS Lambda, la CLI de AWS, el modelo de aplicaciones sin servidor (SAM) de AWS y AWS CloudFormation. Para obtener más información, visite la publicación del blog de lanzamiento para ver los controles de registro avanzados o la Guía para desarrolladores de Lambda.
P: ¿Puedo usar mis propias bibliotecas de registro para generar registros estructurados en JSON para mi función de Lambda?
Sí, puede usar sus propias bibliotecas de registro para generar registros de Lambda en formato estructurado JSON. Para garantizar que las bibliotecas de registro funcionen sin inconvenientes con la capacidad de registro estructurado JSON nativa de Lambda, Lambda no codificará dos veces los registros generados por la función que ya estén codificados en JSON. También puede usar la biblioteca Powertools for AWS Lambda para capturar los registros de Lambda en formato estructurado JSON.
P: ¿Cómo se me cobrará por usar los controles de registro avanzados?
El uso de controles de registro avanzados en Lambda no conlleva ningún cargo adicional. Los registros de Amazon CloudWatch le seguirán cobrando por la ingesta y el almacenamiento de sus registros de Lambda. Consulte la página de precios de CloudWatch para conocer los detalles sobre los precios de registro.
Funciones de AWS Lambda en Java
P: ¿Cómo puedo compilar el código Java de la función de AWS Lambda?
Puede usar herramientas estándares como Mavel o Gradle para compilar la función de Lambda. Su proceso de creación debería ser idéntico al proceso de creación que utilizaría para compilar cualquier código de Java que dependa del AWS SDK. Ejecute la herramienta de compilación de Java en los archivos fuente e incluya el AWS SDK 1.9 o superior con dependencias transitivas en el classpath. Para obtener más detalles, consulte nuestra documentación.
P: ¿Qué entorno JVM utiliza Lambda para ejecutar la función?
Funciones de AWS Lambda en Node.js
P: ¿Puedo usar paquetes con AWS Lambda?
Sí. Puede utilizar paquetes NPM, así como paquetes a medida. Obtenga más información aquí.
P: ¿Puedo ejecutar otros programas desde mi función de AWS Lambda escritas en Node.js?
Sí. El entorno de pruebas integrado de Lambda le permite ejecutar scripts por lotes (“shell”), otros tiempos de ejecución de lenguajes, rutinas de utilidades y ejecutables. Obtenga más información aquí.
P: ¿Es posible utilizar módulos nativos con las funciones de AWS Lambda escritas en Node.js?
Sí. Todos los módulos nativos enlazados estáticamente se pueden incluir en el archivo ZIP que cargue, así como los módulos enlazados dinámicamente compilados con un rpath que apunte al directorio raíz de su función Lambda. Obtenga más información aquí.
P: ¿Puedo ejecutar archivos binarios con AWS Lambda escrito en Node.js?
Sí. Puede utilizar el comando child_process de Node.js para ejecutar un binario que haya incluido en la función o cualquier ejecutable de Amazon Linux que la función pueda ver. Como alternativa, existen varios paquetes NPM que envuelven los binarios de la línea de comandos, como node-ffmpeg. Obtenga más información aquí.
P: ¿Cómo puedo implementar el código de una función de AWS Lambda escrita en Node.js?
Para implementar una función de Lambda escrita en Node.js, comprima el código Javascript y las bibliotecas dependientes en un archivo ZIP. Puede cargar el archivo ZIP desde su entorno local, o bien, especificar la ubicación de Amazon S3 en la que se encuentra el archivo ZIP. Para obtener más detalles, consulte nuestra documentación.
Funciones de AWS Lambda en Python
P: ¿Puedo usar paquetes de Python con AWS Lambda?
Funciones de AWS Lambda en C#
P: ¿Cómo empaqueto e implemento una función de AWS Lambda en C#?
Funciones de AWS Lambda en PowerShell
P: ¿Cómo puedo implementar el código de una función de AWS Lambda escrita en PowerShell?
Un paquete de implementación de PowerShell Lambda es un archivo de ZIP que contiene un script de PowerShell, los módulos de PowerShell requeridos para su script de PowerShell y los ensambles necesarios para alojar el núcleo de PowerShell. Entonces use el módulo de AWSLambdaPSCore que puede instalar de la Galería de PowerShell para crear su paquete de implementación de PowerShell Lambda.
Funciones de AWS Lambda en Go
P: ¿Cómo empaqueto e implemento una función de AWS Lambda en Go?
Cargue su artefacto ejecutable de Go como un archivo ZIP a través de la CLI de AWS o de la consola de Lambda y seleccionar el tiempo de ejecución go1.x. Con Lambda, puede utilizar las herramientas nativas de Go para compilar y empaquetar el código. Consulte la documentación para obtener más detalles.
Funciones de AWS Lambda en Ruby
P: ¿Cómo puedo implementar el código de una función de AWS Lambda escrita en Ruby?
Otros temas
P: ¿Qué versiones de Amazon Linux, Node.js, Python, JDK, .NET Core, SDK y de otras bibliotecas admite AWS Lambda?
Puede ver la lista de versiones compatibles aquí.
P: ¿Puedo cambiar la versión de Amazon Linux o cualquier tiempo de ejecución de lenguaje?
No. AWS Lambda ofrece una única versión del sistema operativo y del tiempo de ejecución del lenguaje administrado para todos los usuarios del servicio. Puede traer su propio entorno de ejecución de lenguaje común para usarlo en Lambda.
P: ¿Cómo puedo registrar e inspeccionar llamadas realizadas a la API de AWS Lambda?
P: ¿Cómo puedo coordinar llamadas entre varias funciones de Lambda?
Puede usar Amazon Step Functions para coordinar varias funciones de Lambda de invocación. Puede invocar numerosas funciones de Lambda de manera secuencial, pasando la salida de una a otra, y/o simultáneamente. Para obtener más detalles, consulte nuestra documentación.