Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Comprensión de los conceptos básicos de Lambda

Modo de enfoque
Comprensión de los conceptos básicos de Lambda - AWS Lambda

Dado que Lambda es un servicio de computación sin servidor y basado en eventos, utiliza un paradigma de programación diferente al de las aplicaciones web tradicionales. Si aún no está familiarizado con Lambda o el desarrollo sin servidor, encuentre en las siguientes secciones algunos conceptos básicos útiles para comenzar a aprender. Además de una explicación de cada concepto, en las secciones también encontrará enlaces a tutoriales, documentación detallada y otros recursos que podrá utilizar para profundizar en cada tema.

En esta página, aprenderá lo siguiente:

  • Funciones de Lambda: los componentes básicos de Lambda que se utilizan para crear aplicaciones

  • Tiempos de ejecución de Lambda: los entornos específicos del lenguaje en los que se ejecutan las funciones

  • Desencadenadores y asignación de orígenes de eventos: formas en las que otros Servicios de AWS invoquen las funciones en respuesta a eventos específicos

  • El objeto de evento: un objeto JSON que contiene datos de evento para que la función los procese

  • Permisos Lambda: la forma de controlar con qué otros Servicios de AWS pueden interactuar las funciones y quién puede acceder a estas

sugerencia

Si desea comenzar por comprender el desarrollo sin servidor de manera más general, consulte Comprensión de la diferencia entre el desarrollo tradicional y sin servidor en la Guía para desarrolladores de AWS sin servidor.

Funciones de Lambda

En Lambda, las funciones son los componentes básicos que se utilizan para crear aplicaciones. Una función de Lambda es una porción de código que se ejecuta en respuesta a eventos, como un usuario que hace clic en un botón de un sitio web o un archivo que se carga en un bucket de Amazon Simple Storage Service (Amazon S3). Una función es una especie de programa autónomo con las siguientes propiedades.

  • Cada función tiene un cometido u objetivo específico

  • Se ejecutan únicamente cuando es necesario en respuesta a eventos específicos

  • Se dejan de ejecutar automáticamente cuando terminan

Cuando una función se ejecuta en respuesta a un evento, Lambda ejecuta la función que controla la función. Los datos sobre el evento que provocó la ejecución de la función se transmiten directamente al controlador. Mientras que el código de una función de Lambda puede contener más de un método o función, las funciones de Lambda solo pueden tener un controlador.

Para crear una función de Lambda, se combinan el código de la función y sus dependencias en un paquete de implementación. Lambda admite dos tipos de paquetes de implementación: archivos .zip e imágenes de contenedores.

Para comprender mejor las funciones de Lambda, recomendamos que comience por completar el tutorial Creación de su primera función de Lambda, si aún no lo ha hecho. En este tutorial se brinda más información sobre la función del controlador y sobre cómo transmitir datos hacia la función y desde esta. También se ofrece una introducción a la creación de registros de funciones.

Tiempos de ejecución y entorno de ejecución de Lambda

Las funciones de Lambda se ejecutan en un entorno de ejecución seguro y aislado que Lambda administra en su nombre. Este entorno de ejecución administra los procesos y recursos que se necesitan para ejecutar la función. Cuando se invoca una función por primera vez, Lambda crea un nuevo entorno de ejecución para que la función se ejecute en este. Una vez que la función termina de ejecutarse, Lambda no detiene el entorno de ejecución de inmediato; si la función se invoca de nuevo, Lambda puede reutilizar el entorno de ejecución existente.

El entorno de ejecución de Lambda también contiene un tiempo de ejecución, un entorno específico del lenguaje que transmite información de eventos y respuestas entre Lambda y la función. Lambda proporciona una serie de tiempos de ejecución administrados para los lenguajes de programación más conocidos, o puede crear los suyos propios.

En el caso de los tiempos de ejecución administrados, Lambda aplica automáticamente actualizaciones y revisiones de seguridad a las funciones que utilizan el tiempo de ejecución.

Desencadenadores y asignaciones de orígenes de eventos

Aunque puede invocar una función de Lambda manualmente mediante la AWS Command Line Interface (AWS CLI) o a través de la API de Lambda, lo más habitual en una aplicación de producción es que la función sea invocada por otro Servicio de AWS en respuesta a un evento concreto. Por ejemplo, es posible que desee que una función se ejecute cada vez que se agregue un elemento a una tabla de Amazon DynamoDB.

Para configurar una función de modo que se ejecute en respuesta a un evento específico, se agrega un desencadenador. Al crear un desencadenador, otro Servicios de AWS puede invocar la función directamente al enviar un objeto de evento a Lambda cada vez que se produzca un evento concreto. Una función puede tener múltiples desencadenadores, cada uno de los cuales invoca la función de forma independiente.

Algunos tipos de servicios de secuencias y colas, como Amazon Kinesis o Amazon Simple Queue Service (Amazon SQS), no pueden invocar directamente a Lambda mediante un desencadenador. En el caso de estos servicios, es necesario crear una asignación de origen de eventos. Las asignaciones de orígenes de eventos son un tipo especial de recurso Lambda que sondea continuamente una secuencia o cola en busca de nuevos eventos. Por ejemplo, una asignación de orígenes de eventos podría sondear una cola de Amazon SQS para comprobar si se han agregado nuevos mensajes. Lambda agrupa por lotes los mensajes nuevos en una única carga útil hasta que se alcanza el límite que configure y, a continuación, invoca la función con un único objeto de evento que contiene todos los registros del lote.

La forma más sencilla de crear un desencadenador o una asignación de orígenes de eventos es mediante la consola de Lambda. Aunque los recursos subyacentes que Lambda crea y la forma en que se invoca la función son diferentes, el proceso para crear un desencadenador o una asignación de orígenes de eventos en la consola se lleva a cabo con el mismo método.

Para ver un ejemplo de cómo funciona un desencadenador, comience por realizar el tutorial Uso de un desencadenador de Amazon S3 para invocar una función de Lambda; o bien, si desea obtener información general sobre el uso de desencadenadores e instrucciones para crear un desencadenador mediante la consola de Lambda, consulte Invocar Lambda con eventos de otros servicios de AWS.

El objeto de evento

Lambda es un servicio de computación basado en eventos. Esto significa que el código se ejecuta en respuesta a eventos generados por productores externos. Los datos del evento se transmiten a la función como un documento con formato JSON, que el tiempo de ejecución convierte en un objeto para que el código lo procese. Por ejemplo, en Python, el tiempo de ejecución convierte un objeto JSON en un diccionario de Python y lo transmite a la función como argumento de entrada del event.

Cuando otro Servicio de AWS genera el evento, el formato del evento depende de este. Por ejemplo, un evento de Amazon S3 incluye el nombre del bucket que desencadenó la función e información sobre los objetos de ese bucket. Para obtener más información sobre el formato de los eventos generados por diferentes Servicios de AWS, consulte los capítulos correspondientes en Invocar Lambda con eventos de otros servicios de AWS.

Además, puede invocar una función de Lambda directamente mediante la consola de Lambda, AWS CLI, o uno de los kits de desarrollo de software (SDK) de AWS. Cuando se invoca una función directamente, se determina el formato y el contenido del evento JSON. Por ejemplo, suponga que tiene una función de Lambda que escribe datos meteorológicos en una base de datos. Puede definir el siguiente formato JSON para el evento. Al igual que con los eventos generados por otros Servicios de AWS, el tiempo de ejecución de Lambda convierte este JSON en un objeto antes de transmitirlo al controlador de la función.

ejemplo evento de Lambda personalizado
{ "Location": "SEA", "WeatherData":{ "TemperaturesF":{ "MinTempF": 22, "MaxTempF": 78 }, "PressuresHPa":{ "MinPressureHPa": 1015, "MaxPressureHPa": 1027 } } }

Dado que el tiempo de ejecución de Lambda convierte el evento en un objeto, se pueden asignar fácilmente valores del evento a variables sin necesidad de deserializar el JSON. Los siguientes fragmentos de código de ejemplo muestran cómo asignar el valor mínimo de temperatura del evento de ejemplo anterior a una variable MinTemp mediante los tiempos de ejecución Python y Node.js. En ambos casos, el objeto de evento se transmite a la función controladora de la función como un argumento denominado event.

ejemplo Fragmento de código Python
MinTemp = event['WeatherData']['TemperaturesF']['MinTempF']
ejemplo Fragmento de código Node.js
let MinTemp = event.WeatherData.TemperaturesF.MinTempF;

Para ver un ejemplo de cómo invocar una función de Lambda con un evento personalizado, consulte Creación de su primera función de Lambda.

Permisos de Lambda

En el caso de Lambda, existen dos tipos principales de permisos que debe configurar:

  • Permisos que la función necesita para acceder a otros Servicios de AWS

  • Permisos que otros usuarios y Servicios de AWS necesitan para acceder a la función

En las siguientes secciones se describen estos dos tipos de permisos y se analizan las prácticas recomendadas para aplicar los permisos de privilegio mínimo.

Permisos para que las funciones accedan a otros recursos de AWS

Con frecuencia, las funciones de Lambda necesitan acceder a otros recursos de AWS y realizar acciones en estos. Por ejemplo, una función puede leer elementos de una tabla de DynamoDB, almacenar un objeto en un bucket de S3 o escribir en una cola de Amazon SQS. Para conceder a las funciones los permisos que necesitan para realizar estas acciones, se utiliza un rol de ejecución.

Un rol de ejecución de Lambda es un tipo especial de rol de AWS Identity and Access Management (IAM), una identidad que crea en la cuenta y que tiene asociados permisos específicos definidos en una política.

Cada función de Lambda debe tener un rol de ejecución, y un mismo rol puede ser utilizado por más de una función. Cuando se invoca una función, Lambda asume el rol de ejecución de la función y se le concede permiso para realizar las acciones definidas en la política del rol.

Al crear una función en la consola de Lambda, Lambda crea automáticamente un rol de ejecución para la función. La política del rol concede a la función permisos básicos para escribir salidas de registros en Registros de Amazon CloudWatch. Para conceder a la función permiso para realizar acciones en otros recursos de AWS, es necesario editar el rol para agregar los permisos adicionales. La forma más sencilla de agregar permisos es utilizar una política administrada por AWS. Las políticas administradas son creadas y administradas por AWS y proporcionan permisos para numerosos casos de uso habituales. Por ejemplo, si la función realiza operaciones CRUD en una tabla de DynamoDB, puede agregar la política AmazonDynamoDBFullAccess al rol.

Permisos para que otros usuarios y recursos accedan a la función

Para conceder permiso a otro Servicio de AWS para acceder a la función de Lambda, se utilizan políticas basadas en recursos. En IAM, las políticas basadas en recursos se asocian a un recurso (en este caso, la función de Lambda) y definen tanto quién puede acceder al recurso como qué acciones puede realizar.

Para que otro Servicio de AWS invoque la función a través de un desencadenador, la política basada en recursos de la función debe conceder a dicho servicio permiso para utilizar la acción lambda:InvokeFunction. Si crea el desencadenador con la consola, Lambda agregará automáticamente este permiso en su nombre.

Para conceder permiso a otros usuarios de AWS para acceder a la función, puede definirlo en la política basada en recursos de la función exactamente del mismo modo que para otro Servicio de AWS o recurso. También puede utilizar una política basada en identidades que esté asociada al usuario.

Prácticas recomendadas para los permisos de Lambda

Cuando se establecen permisos mediante políticas de IAM, la práctica recomendada en materia de seguridad consiste en conceder únicamente los permisos necesarios para realizar una tarea. Esto se conoce como principio de privilegio mínimo. Para comenzar a conceder permisos para la función, puede optar por utilizar una política administrada por AWS. Las políticas administradas pueden ser la forma más rápida y sencilla de conceder permisos para realizar una tarea, pero es posible que también incluyan otros permisos que no sean necesarios. A medida que avance del desarrollo inicial a las pruebas y la producción, recomendamos que reduzca los permisos a únicamente aquellos que sean necesarios. Para ello, defina políticas administradas por el cliente propias.

El mismo principio se aplica cuando se conceden permisos para acceder a la función mediante una política basada en recursos. Por ejemplo, si desea conceder permiso a Amazon S3 para invocar la función, la práctica recomendada consiste en limitar el acceso a buckets individuales o buckets en Cuentas de AWS específicas, en lugar de conceder permisos generales al servicio de S3.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.