Saltar al contenido principal

Las 20 mejores preguntas y respuestas de la entrevista sobre AWS Lambda para 2024

AWS Lambda es un servicio de computación sin servidor y un tema cada vez más común en las entrevistas técnicas. Tanto si eres nuevo en la computación en la nube como si eres un profesional experimentado, comprender AWS Lambda es esencial.
Actualizado 29 jul 2024  · 12 min de lectura

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.

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.

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.

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.

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

Podemos invocar funciones Lambda de varias formas:

  1. Invocación sincrónica: El cliente espera a que la función se complete y devuelva una respuesta.
  2. Invocación asíncrona: El cliente no espera una respuesta: Lambda ejecuta la función en segundo plano.
  3. Asignación de fuentes de eventos: Lambda sondea automáticamente servicios como DynamoDB o Kinesis e invoca funciones basadas en eventos.
  4. 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

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.

Tenemos varias opciones para optimizar las funciones Lambda:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

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.

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.

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

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.

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:

  1. 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.
  2. Activa la concurrencia provisionada: Manteniendo listo un grupo de entornos inicializados, podemos eliminar los arranques en frío para cargas de trabajo predecibles.
  3. 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.
  4. 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.
  5. 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.

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.

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

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

Podemos implementar una API REST sencilla utilizando Lambda y API Gateway siguiendo los siguientes pasos:

  1. 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.
  2. 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.
  3. Configura la integración: Configuramos el tipo de integración del método como proxy Lambda y especificamos la función a invocar
  4. Despliega la API: Despliega la API para generar un punto final URL público de acceso.
  5. 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.

Podemos configurar una función Lambda para procesar eventos de un bucket S3 siguiendo los pasos que se indican a continuación:

  1. Creamos una función Lambda con los permisos adecuados para acceder al bucket de S3.
  2. En la consola de S3, configuramos una notificación de evento en el bucket de origen.
  3. Elegimos los tipos de eventos que activarán la notificación, como la creación o eliminación de objetos.
  4. Especificamos la función Lambda como destino de la notificación.
  5. Probamos realizando acciones en el cubo S3 que coincidan con los tipos de eventos configurados.
  6. Comprobamos que la función Lambda se invoca con un evento que contiene detalles de la acción S3.

Podemos configurar una función Lambda para escribir datos en una tabla de DynamoDB realizando estos seis pasos:

  1. Creamos una tabla DynamoDB con una clave primaria adecuada y los índices secundarios necesarios.
  2. Creamos un rol IAM para la función Lambda con permisos para acceder a DynamoDB.
  3. Creamos una función Lambda y adjuntamos el rol IAM.
  4. Utilizamos el SDK de DynamoDB para crear una instancia de cliente con el nombre de la tabla.
  5. Utilizamos el método put_item para escribir elementos en la tabla, especificando los atributos clave y otros campos.
  6. Prueba la función con eventos de muestra y utiliza consultas DynamoDB para verificar que los datos se escriben correctamente.

Podemos implementar una función Lambda programada siguiendo estos pasos: nosotros:

  1. Crea una función Lambda para realizar la tarea deseada en un horario.
  2. Abre la consola de Amazon EventBridge y crea una nueva regla.
  3. Define una expresión de programación para la regla utilizando la sintaxis rate o cron.
  4. Selecciona la función Lambda como objetivo de la regla.
  5. Guarda la regla y prueba esperando al siguiente evento programado.
  6. Verifica la ejecución de la función en las métricas y registros de CloudWatch.

Para cambiar el tráfico a una nueva versión de una función Lambda, hacemos lo siguiente

  1. Publica una nueva versión de la función Lambda con el código actualizado.
  2. Crea un alias que apunte a la versión estable más antigua.
  3. Actualiza el alias para dividir el tráfico entre la versión antigua y la nueva utilizando pesos (por ejemplo, 90/10).
  4. Ajusta gradualmente los pesos para desplazar más tráfico a la nueva versión mientras controlas las métricas.
  5. Una vez satisfecho, actualiza el alias para enviar el 100% del tráfico a la nueva versión.
  6. 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 Keita 's photo
Author
Zoumana Keita
LinkedIn
Twitter

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.

Temas

Aprende más sobre AWS con estos cursos

curso

Introduction to AWS

2 hr
14.5K
Discover the world of Amazon Web Services (AWS) and understand why it's at the forefront of cloud computing.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

blog

Los 13 mejores proyectos de AWS: De principiante a profesional

Explora 13 proyectos prácticos de AWS para todos los niveles. Mejora tus conocimientos sobre la nube con aplicaciones prácticas del mundo real y la orientación de expertos.
Joleen Bothma's photo

Joleen Bothma

12 min

Machine Learning Interview Questions

blog

Las 25 preguntas más frecuentes en las entrevistas sobre aprendizaje automático para 2024

Explore las mejores preguntas de entrevista sobre aprendizaje automático con respuestas para estudiantes de último curso y profesionales.
Abid Ali Awan's photo

Abid Ali Awan

15 min

blog

30 preguntas de entrevista sobre Azure: De Básico a Avanzado

Una recopilación de las mejores preguntas para entrevistas sobre Azure adaptadas a todos los niveles de experiencia. Tanto si eres un candidato principiante, intermedio o avanzado, estas preguntas y respuestas te ayudarán a prepararte con confianza para tu próxima entrevista de trabajo relacionada con Azure.
Josep Ferrer's photo

Josep Ferrer

30 min

blog

Las 23 mejores preguntas y respuestas de entrevistas sobre Python

Preguntas esenciales de una entrevista sobre Python con ejemplos para solicitantes de empleo, estudiantes de último curso y profesionales de los datos.
Abid Ali Awan's photo

Abid Ali Awan

30 min

Data engineering interview q and a

blog

Las 39 mejores preguntas y respuestas de entrevistas sobre ingeniería de datos en 2025

Supera tu próxima entrevista con esta recopilación de preguntas y respuestas para entrevistas a ingenieros de datos, que te ayudarán a prepararte para las distintas fases, desde la selección de RR.HH. hasta las evaluaciones técnicas en profundidad, incluyendo preguntas sobre Python y SQL.
Abid Ali Awan's photo

Abid Ali Awan

40 min

Ver másVer más