

# Uso de Lambda con la infraestructura como código (IaC)
<a name="foundation-iac"></a>

Las funciones de Lambda rara vez se ejecutan de forma aislada. En cambio, a menudo forman parte de una aplicación sin servidor con otros recursos, como bases de datos, colas y almacenamiento. Con la [infraestructura como código (IaC)](https://aws.amazon.com/what-is/iac/), puede automatizar sus procesos de implementación para implementar y actualizar de forma rápida y repetible aplicaciones sin servidor completas que requieren muchos recursos de AWS independientes. Este enfoque acelera el ciclo de desarrollo, facilita la administración de la configuración y garantiza que sus recursos se implementen siempre de la misma manera.

## Herramientas de IaC para Lambda
<a name="foundation-iac-tools"></a>

**CloudFormation**  
CloudFormation es el servicio de IaC fundamental de AWS. Puede usar [plantillas YAML o JSON](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html) para modelar y aprovisionar toda su infraestructura de AWS, incluidas las funciones de Lambda. CloudFormation gestiona las complejidades de crear, actualizar y eliminar sus recursos de AWS.

**AWS Serverless Application Model (AWS SAM)**  
AWS SAM es un marco de código abierto creado sobre CloudFormation. Proporciona una sintaxis simplificada para definir aplicaciones sin servidor. Utilice [plantillas de AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-template-anatomy.html) para aprovisionar rápidamente funciones de Lambda, API, bases de datos y orígenes de eventos con solo unas pocas líneas de YAML.

**AWS Cloud Development Kit (AWS CDK)**  
El CDK es un enfoque de la IaC que prioriza el código. Puede definir su arquitectura basada en Lambda mediante TypeScript, JavaScript, Python, Java, C\#/.Net o Go. Elija el lenguaje que prefiera y utilice elementos de programación como parámetros, condicionales, bucles, composición y herencia para definir el resultado deseado de su infraestructura. A continuación, la CDK genera las plantillas de CloudFormation subyacentes para su implementación. Si desea ver un ejemplo de cómo usar Lambda con el CDK, consulte [Implementación de funciones de Lambda con AWS CDK](lambda-cdk-tutorial.md).

![Diagrama que muestra cómo AWS SAM y AWS CDK implementan los recursos y el código de AWS mediante CloudFormation](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/IaC_tools.png)


AWS también ofrece un servicio llamado AWS Infrastructure Composer para desarrollar plantillas de IaC mediante una interfaz gráfica sencilla. Con Infrastructure Composer, puede arrastrar, agrupar y conectar los Servicios de AWS en un lienzo visual para diseñar una arquitectura de aplicaciones. A continuación, Infrastructure Composer crea una plantilla de AWS SAM o una plantilla de CloudFormation a partir de su diseño que puede usar para implementar la aplicación.

En la siguiente sección, [Uso de funciones de Lambda en AWS SAM y en Infrastructure Composer](foundation-iac-getting-started.md), utilizará Infrastructure Composer para desarrollar una plantilla para una aplicación sin servidor basada en una función de Lambda existente.