

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á.

# Implemente seu aplicativo sem servidor Infrastructure Composer na nuvem AWS
<a name="other-services-cfn"></a>

Use AWS Infrastructure Composer para projetar aplicativos sem servidor prontos para implantação. Para implantar, use qualquer serviço AWS CloudFormation compatível. Recomendamos usar o [AWS Serverless Application Model (AWS SAM)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html).

AWS SAM é uma estrutura de código aberto que fornece ferramentas de desenvolvedor para criar e executar aplicativos sem servidor no. AWS Com AWS SAM a sintaxe abreviada, os desenvolvedores declaram CloudFormation recursos e recursos especializados sem servidor que são transformados em infraestrutura durante a implantação.

## AWS SAM Conceitos importantes
<a name="w2aac23b7"></a>

Antes de usar AWS SAM, é importante que você se familiarize com alguns de seus conceitos fundamentais.
+ **[Como AWS SAM funciona](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam-overview)**: este tópico, que está no *Guia do AWS Serverless Application Model desenvolvedor*, fornece informações importantes sobre os componentes principais que você usa para criar seu aplicativo sem servidor: O AWS SAMCLI, o AWS SAM projeto e o AWS SAM modelo.
+ **[Como usar AWS Serverless Application Model (AWS SAM)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/chapter-using-sam.html)**: Este tópico, que está no *Guia do AWS Serverless Application Model desenvolvedor*, fornece uma visão geral de alto nível das etapas que você precisa concluir AWS SAM para implantar seu aplicativo na AWS nuvem. 

Ao projetar seu aplicativo no Infrastructure Composer, você pode usar o **sam sync** comando para que ele detecte AWS SAMCLI automaticamente as alterações locais e implante essas alterações em. CloudFormation Para saber mais, consulte Como [usar o sam sync](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/using-sam-cli-sync.html) no *Guia do AWS Serverless Application Model desenvolvedor*.

## Próximas etapas
<a name="w2aac23b9"></a>

Consulte [Configurado para implantação com o AWS SAMCLI e o Infrastructure Composer](other-services-cfn-sam-using.md) para se preparar para implantar seu aplicativo.

# Configurado para implantação com o AWS SAMCLI e o Infrastructure Composer
<a name="other-services-cfn-sam-using"></a>

Para implantar seu aplicativo com AWS SAM, primeiro você precisa instalar e acessar o AWSCLI e AWS SAMCLI o. Os tópicos desta seção fornecem detalhes sobre como fazer isso.

## Instale o AWS CLI
<a name="other-services-cfn-sam-prerequisites-aws"></a>

Recomendamos instalar e configurar o AWSCLI antes de instalar AWS SAMCLI o. Para obter instruções, consulte [Instalar ou atualizar para a versão mais recente do AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) no *Guia AWS Command Line Interface do Usuário*.

**nota**  
Depois de instalar o AWSCLI, você deve configurar as AWS credenciais. Para saber mais, consulte [Configuração rápida](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html) no *Guia do AWS Command Line Interface usuário*.

## Instale o AWS SAM CLI
<a name="other-services-cfn-sam-prerequisites-sam"></a>

Para instalar o AWS SAMCLI, consulte [Instalando o AWS SAMCLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html) no *Guia do AWS Serverless Application Model desenvolvedor*.

## Acesse o AWS SAMCLI
<a name="w2aac23c13c13"></a>

Se você usa o Infrastructure Composer a partir do Console de gerenciamento da AWS, você tem as seguintes opções para usar o. AWS SAMCLI

**Ativar o modo de sincronização local**  
Com o modo de sincronização local, a pasta do projeto, incluindo o AWS SAM modelo, é salva automaticamente na sua máquina local. O Infrastructure Composer estrutura o diretório do seu projeto de uma forma que AWS SAM reconhece. Você pode executar o a AWS SAMCLI partir do diretório raiz do seu projeto.  
Para obter mais informações sobre o modo de **sincronização local**, consulte[Sincronize e salve localmente seu projeto no console do Infrastructure Composer](using-composer-project-local-sync.md).

**Exporte seu modelo**  
Você pode exportar seu modelo para sua máquina local. Em seguida, execute a AWS SAMCLI partir da pasta principal que contém o modelo. Você também pode usar a `--template-file` opção com qualquer AWS SAMCLI comando e fornecer o caminho para seu modelo.

**Use o Infrastructure Composer do AWS Toolkit for Visual Studio Code**  
Você pode usar o Infrastructure Composer do Toolkit for VS Code para levar o Infrastructure Composer à sua máquina local. Em seguida, use o Infrastructure Composer e o AWS SAMCLI do VS Code.

## Próximas etapas
<a name="w2aac23c13c15"></a>

Para implantar seu aplicativo, consulte[Use o Infrastructure Composer com AWS SAM para criar e implantar](other-services-cfn-sam-examples-example1.md).

# Use o Infrastructure Composer com AWS SAM para criar e implantar
<a name="other-services-cfn-sam-examples-example1"></a>

Agora que você concluiu[Configurado para implantação com o AWS SAMCLI e o Infrastructure Composer](other-services-cfn-sam-using.md), você pode implantar seu aplicativo com AWS SAM o Infrastructure Composer. Esta seção fornece um exemplo detalhando como você pode fazer isso. Você também pode consultar [Implantar seu aplicativo e recursos AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-deploying.html) no *Guia do AWS Serverless Application Model desenvolvedor* para obter instruções sobre como implantar seu aplicativo com AWS SAM.

Este exemplo mostra como criar e implantar o aplicativo de demonstração do Infrastructure Composer. O aplicativo de demonstração tem os seguintes recursos:

![\[A demonstração do Infrastructure Composer, mostrando um aplicativo CRUD básico sem servidor.\]](http://docs.aws.amazon.com/pt_br/infrastructure-composer/latest/dg/images/aac_t1_04.png)


**nota**  
Para saber mais sobre o aplicativo de demonstração, consulte[Carregue e modifique o projeto de demonstração do Infrastructure Composer](getting-started-demo.md).
Neste exemplo, usamos o Infrastructure Composer com a **sincronização local** ativada.

1. Use o **sam build** comando para criar o aplicativo.

   ```
   $ sam build
   ...
   Build Succeeded
   
   Built Artifacts  : .aws-sam/build
   Built Template   : .aws-sam/build/template.yaml
   
   Commands you can use next
   =========================
   [*] Validate SAM template: sam validate
   [*] Invoke Function: sam local invoke
   [*] Test Function in the Cloud: sam sync --stack-name {{stack-name}} --watch
   [*] Deploy: sam deploy --guided
   ```

   O AWS SAMCLI cria o `./aws-sam` diretório na pasta do projeto. Esse diretório contém artefatos de construção para as funções Lambda do aplicativo. Aqui está uma saída do diretório do projeto:

   ```
   .
   ├── README.md
   ├── samconfig.toml
   ├── src
   │   ├── CreateItem
   │   │   ├── index.js
   │   │   └── package.json
   │   ├── DeleteItem
   │   │   ├── index.js
   │   │   └── package.json
   │   ├── GetItem
   │   │   ├── index.js
   │   │   └── package.json
   │   ├── ListItems
   │   │   ├── index.js
   │   │   └── package.json
   │   └── UpdateItem
   │       ├── index.js
   │       └── package.json
   └── template.yaml
   ```

1. Agora, o aplicativo está pronto para ser implantado. Nós usaremos**sam deploy --guided**. Isso prepara seu aplicativo para implantação por meio de uma série de prompts.

   ```
   $ sam deploy --guided
   ...
   Configuring SAM deploy
   ======================
   
       Looking for config file [samconfig.toml] :  Found
       Reading default arguments  :  Success
   
       Setting default arguments for 'sam deploy'
       =========================================
       Stack Name [aws-app-composer-basic-api]: AWS Region [us-west-2]:
       #Shows you resources changes to be deployed and require a 'Y' to initiate deploy
       Confirm changes before deploy [y/N]:
       #SAM needs permission to be able to create roles to connect to the resources in your template
       Allow SAM CLI IAM role creation [Y/n]:
       #Preserves the state of previously provisioned resources when an operation fails
       Disable rollback [y/N]:
       ListItems may not have authorization defined, Is this okay? [y/N]: y
       CreateItem may not have authorization defined, Is this okay? [y/N]: y
       GetItem may not have authorization defined, Is this okay? [y/N]: y
       UpdateItem may not have authorization defined, Is this okay? [y/N]: y
       DeleteItem may not have authorization defined, Is this okay? [y/N]: y
       Save arguments to configuration file [Y/n]:
       SAM configuration file [samconfig.toml]:
       SAM configuration environment [default]:
   ```

    AWS SAMCLIExibe um resumo do que será implantado:

   ```
   Deploying with following values
       ===============================
       Stack name                   : aws-app-composer-basic-api
       Region                       : us-west-2
       Confirm changeset            : False
       Disable rollback             : False
       Deployment s3 bucket         : aws-sam-cli-managed-default-samclisam-s3-demo-1b3x26zbcdkqr
       Capabilities                 : ["CAPABILITY_IAM"]
       Parameter overrides          : {}
       Signing Profiles             : {}
   ```

   O AWS SAMCLI implementa o aplicativo, primeiro criando um conjunto de CloudFormation alterações:

   ```
   Initiating deployment
   =====================
   Uploading to aws-app-composer-basic-api/4181c909ee2440a728a7a129dafb83d4.template  7087 / 7087  (100.00%)
   
   Waiting for changeset to be created..
   CloudFormation stack changeset
   ---------------------------------------------------------------------------------------------------------------------------------------------
   Operation                           LogicalResourceId                   ResourceType                        Replacement
   ---------------------------------------------------------------------------------------------------------------------------------------------
   + Add                               ApiDeploymentcc153d135b             AWS::ApiGateway::Deployment         N/A
   + Add                               ApiProdStage                        AWS::ApiGateway::Stage              N/A
   + Add                               Api                                 AWS::ApiGateway::RestApi            N/A
   + Add                               CreateItemApiPOSTitemsPermissionP   AWS::Lambda::Permission             N/A
                                       rod
   + Add                               CreateItemRole                      AWS::IAM::Role                      N/A
   + Add                               CreateItem                          AWS::Lambda::Function               N/A
   + Add                               DeleteItemApiDELETEitemsidPermiss   AWS::Lambda::Permission             N/A
                                       ionProd
   + Add                               DeleteItemRole                      AWS::IAM::Role                      N/A
   + Add                               DeleteItem                          AWS::Lambda::Function               N/A
   + Add                               GetItemApiGETitemsidPermissionPro   AWS::Lambda::Permission             N/A
                                       d
   + Add                               GetItemRole                         AWS::IAM::Role                      N/A
   + Add                               GetItem                             AWS::Lambda::Function               N/A
   + Add                               Items                               AWS::DynamoDB::Table                N/A
   + Add                               ListItemsApiGETitemsPermissionPro   AWS::Lambda::Permission             N/A
                                       d
   + Add                               ListItemsRole                       AWS::IAM::Role                      N/A
   + Add                               ListItems                           AWS::Lambda::Function               N/A
   + Add                               UpdateItemApiPUTitemsidPermission   AWS::Lambda::Permission             N/A
                                       Prod
   + Add                               UpdateItemRole                      AWS::IAM::Role                      N/A
   + Add                               UpdateItem                          AWS::Lambda::Function               N/A
   ---------------------------------------------------------------------------------------------------------------------------------------------
   
   Changeset created successfully. arn:aws:cloudformation:us-west-2:513423067560:changeSet/samcli-deploy1677472539/967ab543-f916-4170-b97d-c11a6f9308ea
   ```

   Em seguida, ele AWS SAMCLI implanta o aplicativo:

   ```
   CloudFormation events from stack operations (refresh every 0.5 seconds)
   ---------------------------------------------------------------------------------------------------------------------------------------------
   ResourceStatus                      ResourceType                        LogicalResourceId                   ResourceStatusReason
   ---------------------------------------------------------------------------------------------------------------------------------------------
   CREATE_IN_PROGRESS                  AWS::DynamoDB::Table                Items                               -
   CREATE_IN_PROGRESS                  AWS::DynamoDB::Table                Items                               Resource creation Initiated
   CREATE_COMPLETE                     AWS::DynamoDB::Table                Items                               -
   CREATE_IN_PROGRESS                  AWS::IAM::Role                      DeleteItemRole                      -
   CREATE_IN_PROGRESS                  AWS::IAM::Role                      ListItemsRole                       -
   CREATE_IN_PROGRESS                  AWS::IAM::Role                      UpdateItemRole                      -
   CREATE_IN_PROGRESS                  AWS::IAM::Role                      GetItemRole                         -
   CREATE_IN_PROGRESS                  AWS::IAM::Role                      CreateItemRole                      -
   CREATE_IN_PROGRESS                  AWS::IAM::Role                      DeleteItemRole                      Resource creation Initiated
   CREATE_IN_PROGRESS                  AWS::IAM::Role                      ListItemsRole                       Resource creation Initiated
   CREATE_IN_PROGRESS                  AWS::IAM::Role                      GetItemRole                         Resource creation Initiated
   CREATE_IN_PROGRESS                  AWS::IAM::Role                      UpdateItemRole                      Resource creation Initiated
   CREATE_IN_PROGRESS                  AWS::IAM::Role                      CreateItemRole                      Resource creation Initiated
   CREATE_COMPLETE                     AWS::IAM::Role                      DeleteItemRole                      -
   CREATE_COMPLETE                     AWS::IAM::Role                      ListItemsRole                       -
   CREATE_COMPLETE                     AWS::IAM::Role                      GetItemRole                         -
   CREATE_COMPLETE                     AWS::IAM::Role                      UpdateItemRole                      -
   CREATE_COMPLETE                     AWS::IAM::Role                      CreateItemRole                      -
   CREATE_IN_PROGRESS                  AWS::Lambda::Function               DeleteItem                          -
   CREATE_IN_PROGRESS                  AWS::Lambda::Function               CreateItem                          -
   CREATE_IN_PROGRESS                  AWS::Lambda::Function               ListItems                           -
   CREATE_IN_PROGRESS                  AWS::Lambda::Function               UpdateItem                          -
   CREATE_IN_PROGRESS                  AWS::Lambda::Function               DeleteItem                          Resource creation Initiated
   CREATE_IN_PROGRESS                  AWS::Lambda::Function               GetItem                             -
   CREATE_IN_PROGRESS                  AWS::Lambda::Function               ListItems                           Resource creation Initiated
   CREATE_IN_PROGRESS                  AWS::Lambda::Function               CreateItem                          Resource creation Initiated
   CREATE_IN_PROGRESS                  AWS::Lambda::Function               UpdateItem                          Resource creation Initiated
   CREATE_IN_PROGRESS                  AWS::Lambda::Function               GetItem                             Resource creation Initiated
   CREATE_COMPLETE                     AWS::Lambda::Function               DeleteItem                          -
   CREATE_COMPLETE                     AWS::Lambda::Function               ListItems                           -
   CREATE_COMPLETE                     AWS::Lambda::Function               CreateItem                          -
   CREATE_COMPLETE                     AWS::Lambda::Function               UpdateItem                          -
   CREATE_COMPLETE                     AWS::Lambda::Function               GetItem                             -
   CREATE_IN_PROGRESS                  AWS::ApiGateway::RestApi            Api                                 -
   CREATE_IN_PROGRESS                  AWS::ApiGateway::RestApi            Api                                 Resource creation Initiated
   CREATE_COMPLETE                     AWS::ApiGateway::RestApi            Api                                 -
   CREATE_IN_PROGRESS                  AWS::Lambda::Permission             GetItemApiGETitemsidPermissionPro   -
                                                                           d
   CREATE_IN_PROGRESS                  AWS::Lambda::Permission             ListItemsApiGETitemsPermissionPro   -
                                                                           d
   CREATE_IN_PROGRESS                  AWS::Lambda::Permission             DeleteItemApiDELETEitemsidPermiss   -
                                                                           ionProd
   CREATE_IN_PROGRESS                  AWS::ApiGateway::Deployment         ApiDeploymentcc153d135b             -
   CREATE_IN_PROGRESS                  AWS::Lambda::Permission             UpdateItemApiPUTitemsidPermission   -
                                                                           Prod
   CREATE_IN_PROGRESS                  AWS::Lambda::Permission             CreateItemApiPOSTitemsPermissionP   -
                                                                           rod
   CREATE_IN_PROGRESS                  AWS::Lambda::Permission             GetItemApiGETitemsidPermissionPro   Resource creation Initiated
                                                                           d
   CREATE_IN_PROGRESS                  AWS::Lambda::Permission             UpdateItemApiPUTitemsidPermission   Resource creation Initiated
                                                                           Prod
   CREATE_IN_PROGRESS                  AWS::Lambda::Permission             CreateItemApiPOSTitemsPermissionP   Resource creation Initiated
                                                                           rod
   CREATE_IN_PROGRESS                  AWS::Lambda::Permission             ListItemsApiGETitemsPermissionPro   Resource creation Initiated
                                                                           d
   CREATE_IN_PROGRESS                  AWS::Lambda::Permission             DeleteItemApiDELETEitemsidPermiss   Resource creation Initiated
                                                                           ionProd
   CREATE_IN_PROGRESS                  AWS::ApiGateway::Deployment         ApiDeploymentcc153d135b             Resource creation Initiated
   CREATE_COMPLETE                     AWS::ApiGateway::Deployment         ApiDeploymentcc153d135b             -
   CREATE_IN_PROGRESS                  AWS::ApiGateway::Stage              ApiProdStage                        -
   CREATE_IN_PROGRESS                  AWS::ApiGateway::Stage              ApiProdStage                        Resource creation Initiated
   CREATE_COMPLETE                     AWS::ApiGateway::Stage              ApiProdStage                        -
   CREATE_COMPLETE                     AWS::Lambda::Permission             CreateItemApiPOSTitemsPermissionP   -
                                                                           rod
   CREATE_COMPLETE                     AWS::Lambda::Permission             UpdateItemApiPUTitemsidPermission   -
                                                                           Prod
   CREATE_COMPLETE                     AWS::Lambda::Permission             ListItemsApiGETitemsPermissionPro   -
                                                                           d
   CREATE_COMPLETE                     AWS::Lambda::Permission             DeleteItemApiDELETEitemsidPermiss   -
                                                                           ionProd
   CREATE_COMPLETE                     AWS::Lambda::Permission             GetItemApiGETitemsidPermissionPro   -
                                                                           d
   CREATE_COMPLETE                     AWS::CloudFormation::Stack          aws-app-composer-basic-api          -
   ---------------------------------------------------------------------------------------------------------------------------------------------
   ```

   Finalmente, uma mensagem é exibida informando que a implantação foi bem-sucedida:

   ```
   Successfully created/updated stack - aws-app-composer-basic-api in us-west-2
   ```

# Use o Infrastructure Composer com AWS SAM para excluir uma pilha
<a name="other-services-cfn-sam-examples-example2"></a>

Este exemplo mostra como excluir uma CloudFormation pilha usando o **sam delete** comando.

Insira o comando **sam delete** em AWS SAMCLI e confirme se você deseja excluir a pilha e o modelo:

```
$ sam delete
	Are you sure you want to delete the stack aws-app-composer-basic-api in the region us-west-2 ? [y/N]: y
	Do you want to delete the template file 30439348c0be6e1b85043b7a935b34ab.template in S3? [y/N]: y
	- Deleting S3 object with key eb226ca86d1bc4e9914ad85eb485fed8
	- Deleting S3 object with key 875e4bcf4b10a6a1144ad83158d84b6d
	- Deleting S3 object with key 20b869d98d61746dedd9aa33aa08a6fb
	- Deleting S3 object with key c513cedc4db6bc184ce30e94602741d6
	- Deleting S3 object with key c7a15d7d8d1c24b77a1eddf8caebc665
	- Deleting S3 object with key e8b8984f881c3732bfb34257cdd58f1e
	- Deleting S3 object with key 3185c59b550594ee7fca7f8c36686119.template
	- Deleting S3 object with key 30439348c0be6e1b85043b7a935b34ab.template
	- Deleting Cloudformation stack aws-app-composer-basic-api

Deleted successfully
```