Saltar al contenido principal
InicioBlogGrandes datos

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

AWS Lambda es un servicio informático sin servidor y un tema cada vez más habitual en las entrevistas técnicas. Tanto si eres nuevo en la informática en la nube como si eres un profesional experimentado, comprender AWS Lambda es esencial.
Actualizado jun 2024  · 12 min leer

Uno de los servicios de AWS más importantes es AWS Lambda, un servicio 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 de preguntas y respuestas seleccionadas. Cubrimos los aspectos básicos y nos adentramos 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 entender por qué la nube de AWS es la principal plataforma a la que se recurre; esto en sí 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 grandes actores 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 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 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 el sector tecnológico, lo que ofrece numerosas oportunidades profesionales a quienes dominan esta plataforma líder en la nube.

Veamos algunas preguntas de la entrevista.

Preguntas básicas de la entrevista de 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 permite ejecutar código sin aprovisionar ni administrar servidores. Lambda ejecuta código solo cuando es necesario y se escala automáticamente, desde unas pocas peticiones al día hasta miles por segundo.

Los principales componentes de una función Lambda son:

  • Controlador: este es el punto de entrada para nuestra función, un método en 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. Contiene información sobre lo que inició la llamada a la función.
  • Contexto: se trata de 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: se trata de pares clave-valor que puedes establecer para configurar el comportamiento de la 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 de empaquetar nuestro código de funciones y 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.

Hay varias formas de crear funciones Lambda:

Método

Descripción

El más adecuado 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 cárgalo.

Proyectos de mayor envergadura, funciones complejas

Imagen de 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 mediante AWS SAM, CloudFormation o CDK.

Gestión de aplicaciones complejas sin servidor, automatización

Podemos invocar funciones Lambda de varias maneras:

  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 SDK o invocaciones programadas a través de Amazon EventBridge.

Preguntas intermedias de la entrevista de AWS Lambda

Existen varias opciones para empaquetar dependencias con código Lambda:

  • Inclusión directa: en el caso de los lenguajes interpretados, podemos colocar los archivos de dependencia junto con nuestro código de función en el paquete de implementación .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 contenedor: 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.

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 ayudarte a encontrar la configuración óptima.
  2. 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 de los paquetes eliminando dependencias innecesarias y comprimiendo el código.
  3. Lambda SnapStart: esta función preinicializa los entornos funcionales, lo que reduce significativamente los tiempos de arranque en frío para tiempos de ejecución específicos.
  4. Simultaneidad aprovisionada: configura la simultaneidad aprovisionada para mantener en estado de espera las instancias de función, garantizando tiempos de respuesta constantes para 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, incluido el número de solicitudes, la latencia, las tasas de error, etc.

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 de 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 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 de configuración dinámicas.

Un mapeo de origen de eventos es un recurso Lambda que lee elementos de un origen de eventos e invoca una función.

Podemos utilizar mapeos de origen 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 de la entrevista de 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 mínimo 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. Utilizar SnapStart: esta característica (disponible para ciertos tiempos de ejecución) nos permite persistir entornos inicializados, reduciendo significativamente los tiempos de inicio para las invocaciones posteriores.
  2. Activar la simultaneidad aprovisionada: al mantener un grupo de entornos inicializados listos, podemos eliminar los arranques en frío para cargas de trabajo predecibles.
  3. 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.
  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 de arranque en frío.
  5. Reutilización del contexto de ejecución: mantener nuestro código de 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:

  • Uso de autorizadores IAM o Lambda para autenticar y autorizar solicitudes.
  • Habilitación de grupos de usuarios de Amazon Cognito para la administración de usuarios.
  • Definición de políticas de recursos para permitir o denegar el acceso en función de las propiedades de las solicitudes, como las IP de origen.
  • Configuración de mTLS para una comunicación cliente-servidor segura.
  • Uso de AWS WAF para protegerse de las vulnerabilidades web comunes dirigidas a las API.

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 contenedor

Paquetes de implementación .zip

Flexibilidad en tiempo de ejecución

Establecer nuestro propio tiempo de ejecución (cualquier lenguaje o versión)

Limitado a los tiempos de ejecución predefinidos de Lambda

Tamaño de implementación

Hasta 10 GB

Hasta 250 MB (descomprimido)

Implementación y Arranque en frío

Implementaciones más lentas y mayor posibilidad de latencia de arranque en frío

Implementaciones más rápidas y, en general, menor latencia de arranque en frío

Herramientas y Flujo de trabajo

Perfecta integración con nuestras herramientas y flujos de trabajo de contenedores existentes

Puede requerir herramientas adicionales para la gestión de dependencias y la implementación.

El 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 de llamada.

Preguntas prácticas de la entrevista de AWS Lambda

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

  1. Crear 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 API Gateway, 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. Implementación de la API: implementa la API para generar un endpoint 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 solicitudes y devolviendo las respuestas adecuadas.

Podemos configurar una función Lambda para procesar eventos de un bucket S3 siguiendo los siguientes pasos:

  1. Creamos una función Lambda con los permisos adecuados para acceder al bucket 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 bucket 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 de Lambda para escribir datos en una tabla de DynamoDB siguiendo estos seis pasos:

  1. Creamos una tabla DynamoDB con una clave principal adecuada y los índices secundarios necesarios.
  2. Creamos un rol de IAM para la función de 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 de DynamoDB para verificar que los datos se escriben correctamente.

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

  1. Crear una función Lambda para realizar la tarea deseada en un horario.
  2. Abrir la consola de Amazon EventBridge y crear una nueva regla.
  3. Definir una expresión de programación para la regla utilizando la sintaxis rate o cron.
  4. Seleccionar la función Lambda como objetivo de la regla.
  5. Guardar la regla y probarla esperando al siguiente evento programado.
  6. Verificar 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, debemos:

  1. Publicar una nueva versión de la función Lambda con el código actualizado.
  2. Crear un alias que apunte a la versión estable más antigua.
  3. Actualizar el alias para dividir el tráfico entre la versión antigua y la nueva utilizando pesos (por ejemplo, 90/10).
  4. Ajustar gradualmente los pesos para desplazar más tráfico a la nueva versión mientras supervisamos las métricas.
  5. Una vez satisfecho, actualizar el alias para enviar el 100 % del tráfico a la nueva versión.
  6. Repetir 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 prácticas recomendadas y los patrones de uso prácticos.

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 saber más, consulta estos dos cursos:

Temas

Consigue más información sobre AWS con estos cursos

Course

Introduction to AWS

2 hr
8.4K
Discover the world of Amazon Web Services (AWS) and understand why it's at the forefront of cloud computing.
See DetailsRight Arrow
Start Course
Ver másRight Arrow
Relacionado

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

22 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

22 min

Data engineering interview q and a

blog

Las 21 mejores preguntas y respuestas de la entrevista sobre ingeniería de datos

Con estas preguntas y respuestas de las mejores entrevistas sobre ingeniería de datos, te asegurarás de que aciertas en tu próxima entrevista.
Abid Ali Awan's photo

Abid Ali Awan

16 min

blog

Las 80 mejores preguntas y respuestas de entrevistas SQL para principiantes y profesionales intermedios

Este artículo ofrece una visión completa de 80 preguntas y respuestas esenciales sobre SQL para los que buscan trabajo, los directores de RR. HH. y los reclutadores, y abarca tanto temas generales como preguntas técnicas.
Elena Kosourova's photo

Elena Kosourova

12 min

blog

28 preguntas principales de la entrevista a un científico de datos para todos los niveles

Explora las preguntas principales de la entrevista sobre ciencia de datos con respuestas para estudiantes de último curso y profesionales en busca de empleo.
Abid Ali Awan's photo

Abid Ali Awan

23 min

blog

14 preguntas de la entrevista al analista de datos: cómo preparar una entrevista de analista de datos en 2024

Si estás buscando tu primer trabajo de analista de datos o quieres ascender en tu carrera, utiliza esta guía para prepararte para la entrevista, practicar algunas preguntas de la entrevista de analista de datos y conseguir el trabajo de tus sueños.
Matt Crabtree's photo

Matt Crabtree

12 min

See MoreSee More