

# Usar o Lambda com a infraestrutura como código (IaC)
<a name="foundation-iac"></a>

As funções do Lambda raramente são executadas de forma isolada. Em vez disso, elas fazem parte de uma aplicação sem servidor com outros recursos, como bancos de dados, filas e armazenamento. Com a [infraestrutura como código (IaC)](https://aws.amazon.com/what-is/iac/), você pode automatizar os processos de implantação para implantar e atualizar de forma rápida e repetitiva aplicações inteiras sem servidor envolvendo vários recursos da AWS separados. Essa abordagem agiliza o ciclo de desenvolvimento, torna o gerenciamento de configurações mais fácil e garante que seus recursos sejam implantados sempre da mesma forma.

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

**CloudFormation**  
O CloudFormation é o serviço básico de IaC da AWS. Você pode usar [modelos YAML ou JSON](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html) para modelar e provisionar toda a sua infraestrutura da AWS, incluindo funções do Lambda. O CloudFormation lida com as complexidades de criar, atualizar e excluir os recursos da AWS.

**AWS Serverless Application Model (AWS SAM)**  
O AWS SAM é um framework de código aberto baseado no CloudFormation. Ele fornece uma sintaxe simplificada para definir aplicações sem servidor. Use [modelos do AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-template-anatomy.html) para provisionar rapidamente APIs, bancos de dados, origens de eventos e funções do Lambda com apenas algumas linhas de YAML.

**AWS Cloud Development Kit (AWS CDK)**  
O CDK é uma abordagem de Code First para o IaC. Você pode definir a arquitetura baseada no Lambda usando TypeScript, JavaScript, Python, Java, C\#/.Net ou Go. Escolha sua linguagem preferencial e use elementos de programação como parâmetros, condicionais, loops, composição e herança para definir o resultado desejado da infraestrutura. O CDK então gera os modelos subjacentes do CloudFormation para implantação. Para obter um exemplo de como usar o Lambda com o CDK, consulte [Implantar funções do Lambda com o AWS CDK](lambda-cdk-tutorial.md).

![Diagrama mostrando como o AWS SAM e o AWS CDK implantam os recursos e os códigos da AWS usando o CloudFormation](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/IaC_tools.png)


A AWS também fornece um serviço denominado AWS Infrastructure Composer para desenvolver modelos de IaC usando uma interface gráfica simples. Com o Infrastructure Composer, você projeta uma arquitetura de aplicação arrastando, agrupando e conectando os Serviços da AWS em uma tela visual. O Infrastructure Composer então cria um modelo do AWS SAM ou do CloudFormation com base no seu design que você pode usar para implantar aplicações.

Na seção [Use as funções do Lambda no AWS SAM e no Compositor de Infraestrutura](foundation-iac-getting-started.md) abaixo, o Infrastructure Composer é usado para desenvolver um modelo para uma aplicação sem servidor baseada em uma função do Lambda existente.