curso
Las 20 mejores preguntas y respuestas de la entrevista sobre AWS Lambda para 2024
Uno de los servicios de AWS más importantes que hay que entender es AWS Lambda, unservicio informático sin servidor que ejecuta código en respuesta a eventos y administra automáticamente los recursos subyacentes.
A medida que crece la adopción de Lambda, es habitual encontrarse con preguntas sobre AWS Lambda en las entrevistas técnicas.
Esta guía simplifica la preparación de la entrevista de AWS Lambda proporcionando una lista curada de preguntas y respuestas. Cubrimos los aspectos básicos y nos adentramos en escenarios avanzados y prácticos.
Si quieres saber más sobre AWS, consulta este curso sobre Tecnología y Servicios en la Nube de AWS.
¿Por qué AWS?
Antes de explorar las preguntas y respuestas de la entrevista, es importante entender por qué la Nube de AWS es la principal plataforma a la que se acude, ya que esto mismo podría ser una pregunta en la entrevista.
Empecemos considerando el siguiente gráfico:
Fuente(Statista)
El gráfico ilustra el dominio de AWS en el mercado mundial de servicios de infraestructura en la nube en el segundo trimestre de 2023. Con una cuota de mercado del 32%, AWS es el líder indiscutible, muy por delante de su competidor más cercano, Microsoft Azure, que posee el 22% del mercado. Aunque otros actores importantes como Google Cloud (11%) y Alibaba Cloud (4%) contribuyen al mercado, sus cuotas palidecen en comparación con AWS y Azure.
Los ingresos totales generados por los servicios de infraestructura en la nube en el segundo trimestre de 2023, que ascenderán a 65.000 millones de dólares, subrayan aún más la creciente importancia y trascendencia financiera de este mercado. La posición de liderazgo de AWS en este próspero sector refuerza su importancia estratégica para las empresas que buscan soluciones en la nube fiables y escalables.
Si quieres saber más sobre cómo se comparan los distintos proveedores de la nube, consulta esta hoja de trucos sobre la comparación de servicios de AWS, Azure y GCP.
Aunque los aspectos financieros son significativos, el atractivo de AWS va más allá de la cuota de mercado, pues abarca una amplia selección de servicios, fiabilidad, escalabilidad, alcance global, seguridad robusta, innovación continua y una comunidad de apoyo. Estos factores combinados hacen que la experiencia en AWS sea una habilidad muy solicitada en el sector tecnológico, lo que ofrece numerosas oportunidades profesionales a quienes dominan esta plataforma líder en la nube.
¡Echemos un vistazo a algunas preguntas de la entrevista!
Preguntas básicas de la entrevista sobre AWS Lambda
Empecemos por lo básico. Tanto si eres nuevo en AWS Lambda como si simplemente te estás poniendo al día, estos fundamentos te prepararán para una inmersión más profunda en las capacidades de Lambda.
1. ¿Qué es AWS Lambda?
AWS Lambda es un servicio informático sin servidor que te permite ejecutar código sin aprovisionar ni administrar servidores. Lambda ejecuta código sólo cuando es necesario y escala automáticamente, desde unas pocas peticiones al día hasta miles por segundo.
2. ¿Cuáles son los principales componentes de una función Lambda?
Los componentes principales de una función Lambda son:
- Manipulador: Este es el punto de entrada de nuestra función, un método de nuestro código que procesa el evento de invocación. Piensa en ella como la función "principal" de nuestro código Lambda.
- Evento: Son los datos de entrada con formato JSON que desencadenan la ejecución de la función. Lleva información sobre lo que inició la llamada a la función.
- Contexto: Es un objeto que contiene información en tiempo de ejecución sobre el entorno de ejecución de la función. Incluye detalles como el nombre de la función, la versión, los límites de memoria, el ID de la petición y el tiempo de ejecución restante.
- Variables de entorno: Son pares clave-valor que puedes establecer para configurar el comportamiento de tu función Lambda sin modificar el propio código. Suelen utilizarse para almacenar claves API, credenciales de bases de datos u otras configuraciones.
3. ¿Qué idiomas admite Lambda?
Lambda es compatible de forma nativa con Node.js, Python, Ruby, Java, Go, C# y PowerShell. Esto significa que podemos escribir nuestras funciones Lambda directamente en estos lenguajes sin configuración adicional.
Además, Lambda nos permite utilizar tiempos de ejecución personalizados, proporcionando la flexibilidad necesaria para empaquetar nuestro código de funciones y dependencias en una imagen contenedora. Esto permite la compatibilidad con prácticamente cualquier lenguaje de programación, lo que nos permite elegir la herramienta que mejor se adapte a nuestras necesidades.
4. ¿Cómo crear una función Lambda?
Hay varias formas de crear funciones Lambda:
Método |
Descripción |
Más adecuado para |
Lambda Console |
Escribe código directamente en el editor del navegador. |
Funciones sencillas, pruebas rápidas |
Paquete de despliegue |
Empaqueta el código y las dependencias en un archivo ZIP y súbelo. |
Proyectos más grandes, funciones complejas |
Imagen del contenedor |
Función de paquete como imagen de contenedor Docker. |
Tiempos de ejecución personalizados, configuraciones específicas |
Infraestructura como código |
Define funciones y recursos en código declarativo utilizando AWS SAM, CloudFormation o CDK. |
Gestión de aplicaciones complejas sin servidor, automatización |
5. ¿Cuáles son las distintas formas de invocar una Función Lambda?
Podemos invocar funciones Lambda de varias formas:
- Invocación sincrónica: El cliente espera a que la función se complete y devuelva una respuesta.
- Invocación asíncrona: El cliente no espera una respuesta: Lambda ejecuta la función en segundo plano.
- Asignación de fuentes de eventos: Lambda sondea automáticamente servicios como DynamoDB o Kinesis e invoca funciones basadas en eventos.
- Otros métodos: Estos incluyen API Gateway, AWS SDKs o invocaciones programadas a través de Amazon EventBridge.
Preguntas intermedias de la entrevista sobre AWS Lambda
1. ¿Cómo podemos desplegar dependencias junto al código Lambda?
Hay algunas opciones para empaquetar dependencias con código Lambda:
- Inclusión directa: Para los lenguajes interpretados, podemos poner archivos de dependencia junto con nuestro código de función en el paquete de despliegue .zip.
- Capas lambda: Para lenguajes compilados o dependencias mayores, podemos utilizar capas Lambda para empaquetar por separado y compartir dependencias comunes entre funciones.
- Imágenes de contenedores: También podemos empaquetar dependencias en imágenes contenedoras junto con el código de la función Lambda y un tiempo de ejecución personalizado.
2. ¿Cómo podemos optimizar el rendimiento de las funciones Lambda?
Tenemos varias opciones para optimizar las funciones Lambda:
- Asignación de memoria: Elegir el tamaño de memoria adecuado es crucial para equilibrar coste y rendimiento. Herramientas como AWS Lambda Power Tuning pueden ayudar a encontrar la configuración óptima.
- Tamaño del envase: Los paquetes de funciones más pequeños permiten arranques en frío más rápidos (el tiempo que tarda una función Lambda en inicializarse en su primera invocación). Minimiza el tamaño del paquete eliminando dependencias innecesarias y comprimiendo el código.
- Lambda SnapStart: Esta característica preinicializa los entornos de las funciones, reduciendo significativamente los tiempos de arranque en frío para determinados tiempos de ejecución.
- Capacidad de concurrencia prevista: Configura la concurrencia provisionada para mantener calientes las instancias de función, garantizando tiempos de respuesta constantes para las cargas de trabajo críticas.
- Tiempos de espera y límites de concurrencia: Establece los tiempos de espera adecuados y la concurrencia reservada para evitar funciones fuera de control y mantener un entorno Lambda estable.
3. ¿Qué herramientas puedes utilizar para supervisar y depurar las funciones Lambda?
Lambda envía automáticamente métricas a Amazon CloudWatch, incluyendo número de solicitudes, latencia, tasas de error y más.
Podemos utilizar CloudWatch Logs para acceder a los registros que generan el código de nuestra función y el tiempo de ejecución de Lambda.
Para rastrear y solucionar problemas de rendimiento de aplicaciones Lambda distribuidas, podemos utilizar AWS X-Ray.
4. ¿Para qué se utilizan las extensiones lambda?
Las extensiones Lambda nos permiten mejorar nuestras funciones integrándolas con herramientas de supervisión, observabilidad, seguridad y gobernanza.
Las extensiones pueden ejecutarse como procesos independientes en el entorno de ejecución para capturar información de diagnóstico o enviar datos a destinos personalizados.
Algunos ejemplos son la extensión Datadog para métricas y trazas, y la extensión AWS AppConfig para actualizaciones dinámicas de la configuración.
5. ¿Qué es un mapeo de origen de eventos?
Un mapeo de fuente de eventos es un recurso Lambda que lee elementos de una fuente de eventos e invoca una función.
Podemos utilizar mapeos de fuentes de eventos para procesar elementos de flujos de Amazon DynamoDB, flujos de Amazon Kinesis, colas de Amazon MQ, Apache Kafka autogestionado, colas de Amazon SQS, etc.
Lambda proporciona un mecanismo de sondeo para leer lotes de registros de las fuentes de eventos e invocar una función.
Preguntas avanzadas de la entrevista sobre AWS Lambda
1. ¿Cómo controlas el acceso a las funciones Lambda?
AWS Lambda utiliza IAM (Identity and Access Management) para controlar el acceso a dos niveles:
- Las políticas basadas en recursos especifican a qué cuentas, servicios y recursos de AWS se les permite invocar la función.
- El rol de ejecución de la función determina a qué servicios y recursos de AWS puede acceder el código de la función. Siguiendo el principio del menor privilegio, estas políticas deben ser lo más restrictivas posible, permitiendo al mismo tiempo que la función realice las tareas previstas.
2. ¿Cómo puedes minimizar los arranques en frío en Lambda?
Los arranques en frío se producen cuando Lambda necesita inicializar un nuevo entorno de ejecución para procesar una solicitud de invocación. Para minimizar los arranques en frío y mejorar la capacidad de respuesta de nuestra función Lambda, podemos emplear varias estrategias:
- Utiliza SnapStart: Esta función (disponible para determinados tiempos de ejecución) nos permite persistir entornos inicializados, reduciendo significativamente los tiempos de inicio para invocaciones posteriores.
- Activa la concurrencia provisionada: Manteniendo listo un grupo de entornos inicializados, podemos eliminar los arranques en frío para cargas de trabajo predecibles.
- Optimiza el tamaño del paquete: Reducir el tamaño de nuestro paquete de funciones eliminando dependencias innecesarias y optimizando el código puede acelerar el proceso de inicialización.
- Elección de idioma: Optar por lenguajes como Go o Rust, conocidos por tiempos de arranque más rápidos que los lenguajes JVM, también puede ayudar a mitigar los retrasos del arranque en frío.
- Reutilización del contexto de ejecución: Mantener el código de nuestra función Lambda separado de la lógica de configuración inicial nos permite reutilizar el contexto de ejecución entre invocaciones, reduciendo aún más la sobrecarga.
3. ¿Cuáles son algunas de las mejores prácticas de seguridad de API comunes para Lambda?
Al exponer funciones Lambda a través de API Gateway, algunas de las mejores prácticas de seguridad incluyen:
- Utilizar autorizadores IAM o Lambda para autenticar y autorizar solicitudes.
- Habilitar los grupos de usuarios de Amazon Cognito para la gestión de usuarios.
- Definir políticas de recursos para permitir o denegar el acceso en función de las propiedades de la solicitud, como las IP de origen.
- Configurar mTLS para una comunicación cliente-servidor segura.
- Utiliza AWS WAF para protegerte de los exploits web habituales dirigidos a las API.
4. ¿Qué diferencias hay entre las imágenes de contenedor Lambda y los paquetes de despliegue .zip?
Las imágenes de contenedor lambda permiten empaquetar el código de la función y las dependencias en un formato de contenedor compatible con OCI. Comparemos las imágenes contenedoras con los paquetes de despliegue .zip:
Función |
Imágenes de contenedores |
.zip Paquetes de despliegue |
Flexibilidad en tiempo de ejecución |
Traer nuestro propio tiempo de ejecución (cualquier lenguaje o versión) |
Limitado a los tiempos de ejecución predefinidos de Lambda |
Tamaño del despliegue |
Hasta 10 GB |
Hasta 250 MB (descomprimido) |
Despliegue & Arranque en frío |
Despliegues más lentos y latencia de arranque en frío potencialmente mayor |
Despliegues más rápidos y, en general, menor latencia de arranque en frío |
Herramientas & Flujo de trabajo |
Integración perfecta con nuestras herramientas y flujos de trabajo de contenedores existentes |
Puede requerir herramientas adicionales para la gestión de dependencias y el despliegue |
Más adecuado para |
Aplicaciones con grandes dependencias o requisitos de tiempo de ejecución personalizados |
Aplicaciones más pequeñas y compatibles con los tiempos de ejecución predefinidos de Lambda |
5. ¿Pueden las funciones Lambda llamar a otras funciones Lambda?
Sí, las funciones Lambda pueden invocar otras funciones directamente utilizando el SDK de AWS. Los casos de uso comunes incluyen la orquestación de funciones, la agregación de resultados de múltiples funciones y la distribución del procesamiento de eventos.
Cuando una función Lambda invoca a otra, la política basada en recursos de la función invocada debe conceder explícitamente el acceso para permitir la invocación desde la función que llama.
Preguntas prácticas de la entrevista sobre AWS Lambda
1. ¿Cómo se implementa una API REST sencilla utilizando Lambda y API Gateway?
Podemos implementar una API REST sencilla utilizando Lambda y API Gateway siguiendo los siguientes pasos:
- Crea una función Lambda: Desarrolla una función Lambda que reciba la entrada de API Gateway como un objeto de evento y devuelva un objeto de respuesta con datos y códigos de estado.
- Crea una pasarela API: En la Pasarela de la API, creamos una nueva API REST con un recurso y un método correspondientes a la ruta de la API y al método HTTP.
- Configura la integración: Configuramos el tipo de integración del método como proxy Lambda y especificamos la función a invocar
- Despliega la API: Despliega la API para generar un punto final URL público de acceso.
- Prueba a fondo: Podemos utilizar herramientas como cURL o Postman para asegurarnos de que la API funciona correctamente, con la función Lambda gestionando las peticiones y devolviendo las respuestas adecuadas.
2. ¿Cómo se configura una función Lambda para procesar eventos de un bucket S3?
Podemos configurar una función Lambda para procesar eventos de un bucket S3 siguiendo los pasos que se indican a continuación:
- Creamos una función Lambda con los permisos adecuados para acceder al bucket de S3.
- En la consola de S3, configuramos una notificación de evento en el bucket de origen.
- Elegimos los tipos de eventos que activarán la notificación, como la creación o eliminación de objetos.
- Especificamos la función Lambda como destino de la notificación.
- Probamos realizando acciones en el cubo S3 que coincidan con los tipos de eventos configurados.
- Comprobamos que la función Lambda se invoca con un evento que contiene detalles de la acción S3.
3. ¿Cómo se configura una función Lambda para escribir datos en una tabla de DynamoDB?
Podemos configurar una función Lambda para escribir datos en una tabla de DynamoDB realizando estos seis pasos:
- Creamos una tabla DynamoDB con una clave primaria adecuada y los índices secundarios necesarios.
- Creamos un rol IAM para la función Lambda con permisos para acceder a DynamoDB.
- Creamos una función Lambda y adjuntamos el rol IAM.
- Utilizamos el SDK de DynamoDB para crear una instancia de cliente con el nombre de la tabla.
- Utilizamos el método
put_item
para escribir elementos en la tabla, especificando los atributos clave y otros campos. - Prueba la función con eventos de muestra y utiliza consultas DynamoDB para verificar que los datos se escriben correctamente.
4. ¿Cómo se implementa una función Lambda programada?
Podemos implementar una función Lambda programada siguiendo estos pasos: nosotros:
- Crea una función Lambda para realizar la tarea deseada en un horario.
- Abre la consola de Amazon EventBridge y crea una nueva regla.
- Define una expresión de programación para la regla utilizando la sintaxis rate o cron.
- Selecciona la función Lambda como objetivo de la regla.
- Guarda la regla y prueba esperando al siguiente evento programado.
- Verifica la ejecución de la función en las métricas y registros de CloudWatch.
5. ¿Cómo se cambia gradualmente el tráfico a una nueva versión de una función Lambda?
Para cambiar el tráfico a una nueva versión de una función Lambda, hacemos lo siguiente
- Publica una nueva versión de la función Lambda con el código actualizado.
- Crea un alias que apunte a la versión estable más antigua.
- Actualiza el alias para dividir el tráfico entre la versión antigua y la nueva utilizando pesos (por ejemplo, 90/10).
- Ajusta gradualmente los pesos para desplazar más tráfico a la nueva versión mientras controlas las métricas.
- Una vez satisfecho, actualiza el alias para enviar el 100% del tráfico a la nueva versión.
- Repite el proceso para la siguiente actualización de funciones, tratando la versión anterior como la nueva versión estable.
Conclusión
Estas preguntas habituales en las entrevistas de AWS Lambda ponen a prueba la comprensión de los candidatos de los conceptos básicos de Lambda, las mejores prácticas y los patrones de uso práctico.
Es importante recordar que la experiencia práctica construyendo y operando aplicaciones Lambda es inestimable para cimentar estos conceptos.
Para saber más, consulta estos dos cursos:

Zoumana desarrolla herramientas de IA LLM para ayudar a las empresas a llevar a cabo la diligencia debida en materia de sostenibilidad y evaluaciones de riesgos. Anteriormente trabajó como científico de datos e ingeniero de aprendizaje automático en Axionable e IBM. Zoumana es la fundadora de la plataforma tecnológica educativa de aprendizaje entre iguales ETP4Africa. Ha escrito más de 20 tutoriales para DataCamp.
Aprende más sobre AWS con estos cursos
curso
AWS Cloud Technology and Services
curso
Understanding Cloud Computing
blog
Los 13 mejores proyectos de AWS: De principiante a profesional

blog
Las 25 preguntas más frecuentes en las entrevistas sobre aprendizaje automático para 2024
blog
30 preguntas de entrevista sobre Azure: De Básico a Avanzado

Josep Ferrer
30 min
blog
Las 23 mejores preguntas y respuestas de entrevistas sobre Python

blog