Curso
Uno de los servicios de AWS más importantes que hay que conocer es AWS Lambda, un servicio informático sin servidor que ejecuta código en respuesta a eventos y gestiona automáticamente los recursos subyacentes.
A medida que crece la adopción de Lambda, es habitual encontrar preguntas sobre AWS Lambda en las entrevistas técnicas.
Esta guía simplifica la preparación para las entrevistas de AWS Lambda al proporcionar una lista seleccionada de preguntas y respuestas. Cubrimos los conceptos básicos y profundizamos en escenarios avanzados y prácticos.
Si deseas obtener más información 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 comprender por qué AWS Nube es la principal plataforma de referencia; esto en sí mismo podría ser una pregunta en la entrevista.
Comencemos por considerar 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, vuestras cuotas son insignificantes 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 ascendieron a 65 000 millones de dólares, ponen aún más de relieve la creciente importancia y relevancia 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 deseas obtener más información sobre las diferencias entre los distintos proveedores de servicios en la nube, consulta esta hoja de referencia sobre la comparación de servicios de AWS, Azure y GCP.
Si bien los aspectos financieros son importantes, el atractivo de AWS va más allá de la cuota de mercado y 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 la industria tecnológica, lo que ofrece numerosas oportunidades profesionales para quienes dominan esta plataforma líder en la nube.
¡Echemos un vistazo a algunas preguntas de entrevista!
Conviértete en Ingeniero de Datos
Preguntas básicas para una entrevista sobre AWS Lambda
Comencemos por lo básico. Tanto si eres nuevo en AWS Lambda como si simplemente quieres refrescar tus conocimientos, estos conceptos básicos te prepararán para profundizar 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 necesidad de aprovisionar ni gestionar servidores. Lambda ejecuta el código solo cuando es necesario y se adapta automáticamente, desde unas pocas solicitudes al día hasta miles por segundo.
2. ¿Cuáles son los componentes principales 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 ello como la función «principal» de nuestro código Lambda.
- Evento: Estos son los datos de entrada en formato JSON que activan la ejecución de la función. Contiene información sobre lo que ha iniciado la llamada a la función.
- Context: Este 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 solicitud 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 código en sí. A menudo se utilizan para almacenar claves API, credenciales de bases de datos u otros ajustes.
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 necesidad de configuraciones adicionales.
Además, Lambda nos permite utilizar tiempos de ejecución personalizados, lo que nos brinda la flexibilidad de empaquetar el código de nuestras funciones y las dependencias en una imagen de contenedor. 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 |
Ideal para |
|
Consola Lambda |
Escribe código directamente en el editor del navegador. |
Funciones sencillas, pruebas rápidas |
|
Paquete de implementación |
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 |
|
Infrastructure-as-Code |
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 diferentes formas de invocar una función Lambda?
Podemos invocar funciones Lambda de varias maneras:
- 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: Entre ellos se incluyen API Gateway, AWS SDK o invocaciones programadas a través de Amazon EventBridge.
Preguntas intermedias para entrevistas sobre AWS Lambda
1. ¿Cómo podemos implementar dependencias junto con el código Lambda?
Hay varias opciones para empaquetar dependencias con código Lambda:
- Inclusión directa: Para los lenguajes interpretados, podemos incluir los archivos de dependencia junto con el código de nuestras funciones en el paquete de implementación .zip.
- Capas lambda: Para lenguajes compilados o dependencias más grandes, podemos usar capas Lambda para empaquetar y compartir por separado las dependencias comunes entre funciones.
- Imágenes de contenedores: También podemos empaquetar dependencias en imágenes de contenedor 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 fundamental para equilibrar el coste y el rendimiento. Herramientas como AWS Lambda Power Tuning pueden ayudar a encontrar la configuración óptima.
- Tamaño del paquete: 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 función preinicializa los entornos de funciones, lo que reduce significativamente los tiempos de arranque en frío para tiempos de ejecución específicos.
- Concurrencia provisionada: Configura la concurrencia aprovisionada para mantener activas las instancias de funciones, lo que garantiza tiempos de respuesta consistentes para cargas de trabajo críticas.
- Tiempo de espera y límites de concurrencia: Establece tiempos de espera adecuados y concurrencia reservada para evitar funciones descontroladas y mantener un entorno Lambda estable.
3. ¿Qué herramientas puedes utilizar para supervisar y depurar funciones Lambda?
Lambda envía automáticamente métricas a Amazon CloudWatch, incluyendo el número de solicitudes, la latencia, las tasas de error y mucho más.
Podemos utilizar CloudWatch Logs para acceder a los registros que generan nuestro código de función y el tiempo de ejecución de Lambda.
Para rastrear y solucionar problemas relacionados con el rendimiento de las aplicaciones Lambda distribuidas, podemos utilizar AWS X-Ray.
4. ¿Para qué se utilizan las extensiones Lambda?
Las extensiones Lambda nos permiten mejorar nuestras funciones mediante la integración con herramientas de supervisión, observabilidad, seguridad y gobernanza.
Las extensiones pueden ejecutarse como procesos independientes en el entorno de ejecución para recopilar información de diagnóstico o enviar datos a destinos personalizados.
Algunos ejemplos son la extensión Datadog para métricas y rastreos, y la extensión AWS AppConfig para actualizaciones de configuración dinámicas.
5. ¿Qué es una asignación de origen de eventos?
Una asignación de origen de eventos es un recurso Lambda que lee elementos de un origen de eventos e invoca una función.
Podemos utilizar asignaciones 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 y mucho más.
Lambda proporciona un mecanismo de sondeo para leer lotes de registros de las fuentes de eventos e invocar una función.
Preguntas avanzadas para entrevistas 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 en dos niveles:
- Las políticas basadas en recursos especifican qué cuentas, servicios y recursos de AWS pueden invocar la función.
- La función de ejecución determina a qué servicios y recursos de AWS puede acceder el código de la función. Siguiendo el principio del mínimo privilegio, estas políticas deben ser lo más restrictivas posible, sin impedir que la función realice las tareas previstas.
2. ¿Cómo puedes minimizar los arranques en frío en Lambda?
Los inicios 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 entornos de ejecución) nos permite conservar los entornos inicializados, lo que reduce considerablemente los tiempos de inicio para las invocaciones posteriores.
- Habilitar la concurrencia aprovisionada: Al mantener un conjunto de entornos inicializados listos, podemos eliminar los arranques en frío para cargas de trabajo predecibles.
- Optimizar 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 del idioma: Optar por lenguajes como Go o Rust, conocidos por sus tiempos de arranque más rápidos que los lenguajes JVM, también puede ayudar a mitigar los retrasos en el arranque en frío.
- Reutilización del contexto de ejecución: Mantener el código de la función Lambda separado de la lógica de configuración inicial nos permite reutilizar el contexto de ejecución entre invocaciones, lo que reduce aún más la sobrecarga.
3. ¿Cuáles son algunas de las prácticas recomendadas más comunes en materia de seguridad de API para Lambda?
Al exponer funciones Lambda a través de API Gateway, algunas prácticas recomendadas de seguridad incluyen:
- Uso de autorizadores IAM o Lambda para autenticar y autorizar solicitudes.
- Habilitación de grupos de usuarios de Amazon Cognito para la gestión de usuarios.
- Definición de políticas de recursos para permitir o denegar el acceso en función de propiedades de las solicitudes, como las direcciones IP de origen.
- Configuración de mTLS para una comunicación segura entre el cliente y el servidor.
- Uso de AWS WAF para protegerte contra los exploits web comunes dirigidos a las API.
4. ¿Cuáles son las diferencias entre las imágenes de contenedor Lambda y los paquetes de implementación .zip?
Las imágenes de contenedor Lambda permiten empaquetar código de función y dependencias en un formato de contenedor compatible con OCI. Comparemos las imágenes de contenedor con los paquetes de implementación .zip:
|
Característica |
Imágenes de contenedores |
Paquetes de implementación .zip |
|
Flexibilidad de tiempo de ejecución |
Trae tu propio tiempo de ejecución (cualquier lenguaje o versión) |
Limitado a los tiempos de ejecución predefinidos de Lambda. |
|
Tamaño de la implementación |
Hasta 10 GB |
Hasta 250 MB (descomprimido) |
|
Implementación y Arranque en frío |
Implementaciones más lentas y latencia de arranque en frío potencialmente mayor. |
Implementaciones más rápidas y latencia de arranque en frío generalmente más baja. |
|
Herramientas y 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 la implementación. |
|
Ideal 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. Entre los casos de uso más habituales se incluyen la coordinació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 acceso para permitir la invocación desde la función que realiza la llamada.
Preguntas prácticas para entrevistas 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 estos pasos:
- Crea una función Lambda: Desarrolla una función Lambda que reciba entradas de API Gateway como un objeto de evento y devuelva un objeto de respuesta con datos y códigos de estado.
- Crear una puerta de enlace API: En API Gateway, creamos una nueva API REST con un recurso y un método que corresponden 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 que se debe invocar.
- Implementa la API: Implementa la API para generar un punto final de URL público para el acceso.
- Prueba minuciosamente: Podemos utilizar herramientas como cURL o Postman para garantizar que la API funcione correctamente, con la función Lambda gestionando las solicitudes y devolviendo las respuestas adecuadas.
2. ¿Cómo se configura una función Lambda para procesar eventos desde un bucket de S3?
Podemos configurar una función Lambda para procesar eventos desde un bucket de 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, configura una notificación de eventos en el bucket de origen.
- Elegimos los tipos de eventos que activan la notificación, como la creación o eliminación de objetos.
- Especificamos la función Lambda como destino de la notificación.
- Realizamos pruebas llevando a cabo acciones en el bucket de S3 que coinciden con los tipos de eventos configurados.
- Verificamos 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 DynamoDB?
Podemos configurar una función Lambda para escribir datos en una tabla DynamoDB siguiendo estos seis pasos:
- Creamos una tabla DynamoDB con una clave primaria adecuada y los índices secundarios necesarios.
- Creamos una función IAM para la función Lambda con permisos para acceder a DynamoDB.
- Creamos una función Lambda y adjuntamos la función IAM.
- Utilizamos el SDK de DynamoDB para crear una instancia de cliente con el nombre de la tabla.
- Utilizamos el método
put_itempara 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:
- Crea una función Lambda para realizar la tarea deseada según un calendario.
- Abre la consola de Amazon EventBridge y crea una nueva regla.
- Define una expresión de programación para la regla utilizando la sintaxis de tasa o cron.
- Selecciona la función Lambda como destino de la regla.
- Guarda la regla y comprueba si funciona esperando al próximo evento programado.
- Verifica la ejecución de la función en las métricas y los registros de CloudWatch.
5. ¿Cómo se transfiere gradualmente el tráfico a una nueva versión de una función Lambda?
Para desviar el tráfico a una nueva versión de una función Lambda, hacéis 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 anterior.
- Actualiza el alias para dividir el tráfico entre la versión antigua y la nueva utilizando ponderaciones (por ejemplo, 90/10).
- Ajusta gradualmente los pesos para desviar más tráfico a la nueva versión mientras supervisas las métricas.
- Una vez que estés satisfecho, actualiza el alias para enviar el 100 % del tráfico a la nueva versión.
- Repite el proceso para la próxima actualización de la función, tratando la versión anterior como la nueva versión estable.
Conclusión
Estas preguntas frecuentes en las entrevistas sobre AWS Lambda evalúan vuestra comprensión de los conceptos básicos de Lambda, las prácticas recomendadas y los patrones de uso práctico.
Es importante recordar que la experiencia práctica en la creación y el funcionamiento de aplicaciones Lambda es muy valiosa para consolidar estos conceptos.
Para obtener más información, consulta estos dos cursos:
Certifícate en el puesto de Ingeniero de Datos de tus sueños
Nuestros programas de certificación te ayudan a destacar y a demostrar que tus aptitudes están preparadas para el trabajo a posibles empleadores.


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.
