

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# infraestrutura como código (IaC)
<a name="what-is-iac"></a>

Com a Infraestrutura como Código (IaC), você pode automatizar a implantação e o gerenciamento de seus AWS recursos, incluindo aplicativos sem servidor. A IaC permite que você defina sua infraestrutura usando código, facilitando a criação de versões, o compartilhamento e a replicação de suas implantações. Essa abordagem ajuda você a:
+ Acelerar seu ciclo de desenvolvimento
+ Simplificar o gerenciamento de configuração
+ Melhorar a confiabilidade e a consistência de suas implantações

## Ferramentas de IaC para aplicativos sem AWS servidor
<a name="iac-tools-aws"></a>

AWS oferece várias ferramentas de IaC para ajudá-lo a criar, implantar e gerenciar seus recursos de nuvem. Esta seção explica como AWS SAM se encaixa nesse ecossistema e funciona com outras ferramentas de AWS IaC.

**AWS CloudFormation**  
Usando [CloudFormation](https://aws.amazon.com/cloudformation/), você pode modelar e provisionar toda a sua AWS infraestrutura com modelos YAML ou JSON. CloudFormation processa automaticamente a criação, as atualizações e a exclusão de recursos. Quando você implanta AWS SAM aplicativos, CloudFormation processa os modelos transformados para criar e gerenciar seus recursos.

**AWS Serverless Application Model (AWS SAM)**  
AWS SAM ajuda você a criar aplicativos sem servidor com sintaxe simplificada para definir recursos sem servidor. Você pode usar AWS SAM modelos para provisionar funções, APIs bancos de dados e fontes de eventos do Lambda usando a sintaxe YAML concisa. AWS SAM transforma esses modelos em CloudFormation modelos durante a implantação.  
Embora seja AWS SAM especializado em aplicativos sem servidor, você pode usar qualquer tipo de CloudFormation recurso em seus modelos. AWS SAM Isso permite a flexibilidade de incluir recursos com tecnologia sem servidor quando necessário.

**AWS Kit de desenvolvimento em nuvem (AWS CDK)**  
Com [AWS CDK](https://aws.amazon.com/cdk/), você pode definir sua infraestrutura sem servidor usando linguagens de programação conhecidas, como TypeScript Python, Java, C\$1/.Net ou Go. Você pode usar construções de programação, como loops e condições, para definir sua infraestrutura e AWS CDK gerar CloudFormation modelos para implantação. Você pode usar o AWS SAMCLI para testar e depurar localmente aplicativos criados com AWS CDK. Para saber mais, consulte [Testing CDK applications locally](https://docs.aws.amazon.com/cdk/v2/guide/testing-locally.html).

## Comparar ferramentas de IaC com aplicações com tecnologia sem servidor
<a name="comparing-iac-tools"></a>

Ao escolher uma ferramenta de IaC para suas aplicativos com tecnologia sem servidor, considere as preferências da sua equipe, os requisitos do projeto e os fluxos de trabalho existentes. A tabela a seguir compara as principais características das ferramentas de AWS IaC para desenvolvimento sem servidor:


| **Ferramenta** | **Uso primário** | **Melhor para** | **Funciona com AWS SAM** | **Quando escolher** | 
| --- | --- | --- | --- | --- | 
| **CloudFormation** | Gerenciando uma AWS infraestrutura complexa | Aplicativos que exigem controle detalhado dos AWS recursos | AWS SAM modelos se transformam em CloudFormation modelos durante a implantação | Para controle preciso sobre recursos que não são com tecnologia sem servidor | 
| **AWS SAM** | Desenvolvimento de aplicações com tecnologia sem servidor | Equipes criando aplicações com tecnologia sem servidor que usam o Lambda | Funcionalidade nativa | Ao focar principalmente em arquiteturas sem servidor com funções Lambda, API Gateway e outros recursos sem servidor APIs | 
| **AWS CDK** | Definição de infraestrutura usando linguagens de programação | Equipes que preferem linguagens digitadas e abordagem que prioriza o código | Gere AWS SAM modelos e use AWS SAMCLI para testes | Quando você precisa de uma definição de infraestrutura programática ou de uma lógica complexa de configuração de recursos | 

**nota**  
Embora este guia se concentre em ferramentas AWS de IaC nativas, o Terraform é outra solução popular de IaC que pode ser usada para definir aplicativos sem servidor. A CLI do AWS SAM oferece suporte para testes locais de funções do Lambda definidas no Terraform. Para obter mais informações, consulte [Suporte AWS SAM CLI Terraform](terraform-support.md).

## Saiba mais
<a name="iac-learn-more"></a>
+ Para saber mais sobre DevOps as práticas em AWS, consulte [Introdução DevOps à AWS](https://docs.aws.amazon.com/whitepapers/latest/introduction-devops-aws/infrastructure-as-code.html)
+ Para obter informações sobre como usar o Lambda com diferentes ferramentas de IaC, consulte [Usar o Lambda com a infraestrutura como código (IaC)](https://docs.aws.amazon.com/lambda/latest/dg/foundation-iac.html)