

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

# Começando com AWS SAM
<a name="serverless-getting-started"></a>

Comece AWS SAM revisando e concluindo os tópicos desta seção. [AWS SAM pré-requisitos](prerequisites.md)fornece instruções detalhadas sobre como configurar uma AWS conta, criar usuários do IAM, criar acesso à chave e instalar e configurar o. AWS SAMCLI Após concluir os pré-requisitos, você poderá escolher sua abordagem de desenvolvimento:
+ [Instale o AWS SAM CLI](install-sam-cli.md), o que pode ser feito nos sistemas operacionais Linux, Windows e macOS. 
+ [Introdução ao AWS SAM usando o VS Code Toolkit](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/sam-get-started.html) para uma experiência de desenvolvimento visual com recursos integrados de depuração e teste.

Após a conclusão da instalação, você pode, opcionalmente, percorrer o tutorial AWS SAM Hello World. Subsequentemente a esse tutorial, você examinará o processo de criação de uma aplicação básica sem servidor com o AWS SAM. Depois de concluir o tutorial, tudo estará pronto para a revisão dos conceitos detalhados em [Como usar AWS Serverless Application Model (AWS SAM)](chapter-using-sam.md).

**Topics**
+ [

# AWS SAM pré-requisitos
](prerequisites.md)
+ [

# Instale o AWS SAM CLI
](install-sam-cli.md)
+ [

# Tutorial: implante um aplicativo Hello World com AWS SAM
](serverless-getting-started-hello-world.md)
+ [

# Conversão de funções Lambda em aplicativos AWS SAM
](convert-lambda-to-sam.md)

# AWS SAM pré-requisitos
<a name="prerequisites"></a>

Preencha os pré-requisitos a seguir antes de instalar e usar a interface de linha de AWS Serverless Application Model comando ().AWS SAMCLI

Para usar o AWS SAMCLI, você precisa do seguinte:
+ Uma AWS conta, credenciais AWS Identity and Access Management (IAM) e um par de chaves de acesso do IAM.
+ O AWS Command Line Interface (AWS CLI) para configurar as AWS credenciais.

**Topics**
+ [

## Etapa 1: inscrever-se em uma AWS conta
](#prerequisites-sign-up)
+ [

## Etapa 2: criar uma conta de usuário do IAM
](#prerequisites-create-user)
+ [

## Etapa 3: criar um ID de chave de acesso e a chave de acesso secreta
](#prerequisites-create-keys)
+ [

## Etapa 4: instalar o AWS CLI
](#prerequisites-install-cli)
+ [

## Etapa 5: use o AWS CLI para configurar as AWS credenciais
](#prerequisites-configure-credentials)
+ [

## Etapa 6: (opcional) instalar o AWS kit de ferramentas para VS Code
](#prerequisites-install-vscode)
+ [

## Próximas etapas
](#prerequisites-next-steps)

## Etapa 1: inscrever-se em uma AWS conta
<a name="prerequisites-sign-up"></a>

Se você não tiver um Conta da AWS, conclua as etapas a seguir para criar um.

**Para se inscrever em um Conta da AWS**

1. Abra a [https://portal.aws.amazon.com/billing/inscrição.](https://portal.aws.amazon.com/billing/signup)

1. Siga as instruções online.

   Parte do procedimento de inscrição envolve receber uma chamada telefônica ou uma mensagem de texto e inserir um código de verificação pelo teclado do telefone.

   Quando você se inscreve em um Conta da AWS, um *Usuário raiz da conta da AWS*é criado. O usuário-raiz tem acesso a todos os Serviços da AWS e recursos na conta. Como prática recomendada de segurança, atribua o acesso administrativo a um usuário e use somente o usuário-raiz para executar [tarefas que exigem acesso de usuário-raiz](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks).

## Etapa 2: criar uma conta de usuário do IAM
<a name="prerequisites-create-user"></a>

Para criar um usuário administrador, selecione uma das opções a seguir.


****  

| Selecionar uma forma de gerenciar o administrador | Para | Por | Você também pode | 
| --- | --- | --- | --- | 
| Centro de Identidade do IAM (Recomendado) | Usar credenciais de curto prazo para acessar a AWS.Isso está de acordo com as práticas recomendadas de segurança. Para obter informações sobre as práticas recomendadas, consulte [Práticas recomendadas de segurança no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) no *Guia do usuário do IAM*. | Seguindo as instruções em [Conceitos básicos](https://docs.aws.amazon.com//singlesignon/latest/userguide/getting-started.html) no Guia do usuário do Centro de Identidade do AWS IAM . | Configure o acesso programático [configurando o AWS CLI para uso Centro de Identidade do AWS IAM](https://docs.aws.amazon.com//cli/latest/userguide/cli-configure-sso.html) no Guia do AWS Command Line Interface usuário. | 
| No IAM (Não recomendado) | Usar credenciais de longo prazo para acessar a AWS. | Seguindo as instruções em [Criar um acesso de emergência para um usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started-emergency-iam-user.html) no Guia do usuário do IAM. | Configurar o acesso programático, com base em [Gerenciar chaves de acesso para usuários do IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_credentials_access-keys.html) no Guia do usuário do IAM. | 

## Etapa 3: criar um ID de chave de acesso e a chave de acesso secreta
<a name="prerequisites-create-keys"></a>

Para acesso à CLI, é necessário ter um ID de chave de acesso e de uma chave de acesso secreta. Use credenciais temporárias em vez de chaves de acesso de longo prazo quando possível. As credenciais temporárias incluem um ID de acesso, uma chave de acesso secreta e um token de segurança que indica quando as credenciais expiram. Para obter mais informações, consulte [Uso de credenciais temporárias com AWS recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) no *Guia do usuário do IAM*.

Os usuários precisam de acesso programático se quiserem interagir com pessoas AWS fora do Console de gerenciamento da AWS. A forma de conceder acesso programático depende do tipo de usuário que está acessando AWS.

Para conceder acesso programático aos usuários, selecione uma das seguintes opções:


****  

| Qual usuário precisa de acesso programático? | Para | Por | 
| --- | --- | --- | 
| IAM | (Recomendado) Use as credenciais do console como credenciais temporárias para assinar solicitações programáticas para o AWS CLI, AWS SDKs ou. AWS APIs |  Siga as instruções da interface que deseja utilizar. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/serverless-application-model/latest/developerguide/prerequisites.html)  | 
|  Identidade da força de trabalho (Usuários gerenciados no Centro de Identidade do IAM)  | Use credenciais temporárias para assinar solicitações programáticas para o AWS CLI AWS SDKs, ou. AWS APIs |  Siga as instruções da interface que deseja utilizar. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/serverless-application-model/latest/developerguide/prerequisites.html)  | 
| IAM | Use credenciais temporárias para assinar solicitações programáticas para o AWS CLI AWS SDKs, ou. AWS APIs | Siga as instruções em [Como usar credenciais temporárias com AWS recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) no Guia do usuário do IAM. | 
| IAM | (Não recomendado)Use credenciais de longo prazo para assinar solicitações programáticas para o AWS CLI, AWS SDKs, ou. AWS APIs |  Siga as instruções da interface que deseja utilizar. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/serverless-application-model/latest/developerguide/prerequisites.html)  | 

## Etapa 4: instalar o AWS CLI
<a name="prerequisites-install-cli"></a>

 AWS CLI É uma ferramenta de código aberto que permite que você interaja com o Serviços da AWS uso de comandos em seu shell de linha de comando. AWS SAMCLIIsso requer o AWS CLI para atividades como a configuração de credenciais. Para saber mais sobre o AWS CLI, consulte [O que é o AWS Command Line Interface?](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) no *Guia do AWS Command Line Interface usuário*.

Para instalar o AWS CLI, consulte [Instalando ou atualizando 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*.

## Etapa 5: use o AWS CLI para configurar as AWS credenciais
<a name="prerequisites-configure-credentials"></a>

**Para configurar as credenciais com o Centro de Identidade do IAM**
+ Para configurar credenciais com o IAM Identity Center, consulte [Configurar seu perfil com o assistente de AWS configuração de sso](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html#cli-configure-sso-configure).

**Para configurar credenciais com o AWS CLI**

1. Execute o comando `aws configure` da linha de comando.

1. Configure as definições a seguir. Selecione cada um dos links para saber mais:

   1. [ ID da chave de acesso](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-creds)

   1. [ Chave de acesso secreta](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-creds)

   1. [Região da AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-region)

   1. [ Formato da saída](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-format)

   O exemplo a seguir mostra valores de exemplo.

   ```
   $ aws configure
   AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
   AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   Default region name [None]: us-west-2
   Default output format [None]: json
   ```

O AWS CLI armazena essas informações em um *perfil* (uma coleção de configurações) nomeado `default` nos `config` arquivos `credentials` e. Esses arquivos estão localizados no arquivo `.aws` em seu diretório inicial. Por padrão, as informações desse perfil são usadas quando você executa um AWS CLI comando que não especifica explicitamente um perfil a ser usado. Para obter mais informações sobre o arquivo `credentials`, consulte [Configurações de arquivos de configuração e credenciais](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) no *Guia do usuário do AWS Command Line Interface *.

Para obter mais informações sobre como configurar credenciais, como usar uma configuração existente e um arquivo de credenciais, consulte [Configuração rápida](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html) no *Guia do usuário do AWS Command Line Interface *.

## Etapa 6: (opcional) instalar o AWS kit de ferramentas para VS Code
<a name="prerequisites-install-vscode"></a>

Para desenvolvedores que preferem um ambiente de desenvolvimento integrado, o AWS Toolkit for VS Code fornece recursos poderosos para o desenvolvimento sem servidor, incluindo depuração visualCodeLens , integração e fluxos de trabalho de implantação simplificados.

**Pré-requisitos para o desenvolvimento do VS Code**
+ Visual Studio Code (versão 1.73.0 ou posterior) instalado em seu sistema
+ Extensão de suporte à linguagem YAML para VS Code

**Para instalar o AWS Toolkit for VS Code**

1. Abra o Visual Studio Code

1. Abra a visualização Extensions (Ctrl\$1Shift\$1X ou Cmd\$1Shift\$1X)

1. Pesquise por "AWS Toolkit”

1. Instale a extensão “AWS Toolkit” da Amazon Web Services

1. Instale a extensão “YAML” da Red Hat (necessária para os CodeLens recursos do modelo SAM)

**Benefícios de usar o VS Code com AWS SAM**
+ Depuração visual: defina pontos de interrupção e execute suas funções do Lambda localmente
+ CodeLens integração: crie, implante e invoque funções diretamente do seu modelo SAM
+ Terminal integrado: acesse AWS CLI os comandos do AWS SAM sem sair do editor
+ Validação de modelo: validação em tempo real e IntelliSense para modelos SAM

Para obter informações sobre como configurar suas AWS credenciais no VS Code, consulte [Configuração de credenciais](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setup-credentials.html) no Guia do usuário do AWS Toolkit for VS Code.

## Próximas etapas
<a name="prerequisites-next-steps"></a>
+ Agora você está pronto para instalar o AWS SAMCLI e começar a usar AWS SAM. Para instalar o AWS SAMCLI, consulte[Instale o AWS SAM CLI](install-sam-cli.md).
+ Para configurar o Visual Studio Code para desenvolvimento sem servidor, consulte [Configurando o AWS Toolkit for VS](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setting-up.html) Code.

# Instale o AWS SAM CLI
<a name="install-sam-cli"></a>

Instale a versão mais recente da interface de linha de AWS Serverless Application Model comando (AWS SAMCLI) em sistemas operacionais compatíveis seguindo as instruções em[Etapa 4: instalar o AWS CLI](prerequisites.md#prerequisites-install-cli).

Para obter informações sobre como gerenciar uma versão atualmente instalada do AWS SAMCLI, incluindo como atualizar, desinstalar ou gerenciar compilações noturnas, consulte. [Gerenciar versões do AWS SAM CLI](manage-sam-cli-versions.md)

**É a primeira vez que você instala o AWS SAM CLI?**  
Conclua todos os [pré-requisitos](prerequisites.md) na seção anterior antes de prosseguir. Isso inclui:  
Inscrevendo-se em uma AWS conta.
Configurando o acesso seguro AWS a.
Como criar um ID de chave de acesso e a chave de acesso secreta.
Instalando AWS CLI o.
Configurando AWS credenciais.

**Topics**
+ [

## Instalar o AWS SAM CLI
](#install-sam-cli-instructions)
+ [

## Solução de problemas de erros de instalação do
](#sam-cli-troubleshoot-install)
+ [

## Próximas etapas
](#install-sam-cli-next-steps)
+ [

# Opcional: verificar a integridade do instalador da CLI do AWS SAM
](reference-sam-cli-install-verify.md)

## Instalar o AWS SAM CLI
<a name="install-sam-cli-instructions"></a>

**nota**  
A partir de setembro de 2023, não AWS manterá mais o Homebrew instalador AWS gerenciado do AWS SAMCLI (`aws/tap/aws-sam-cli`). Se você usa Homebrew para instalar e gerenciar o AWS SAMCLI, consulte as seguintes opções:   
Para continuar usando o Homebrew, use o instalador gerenciado pela comunidade. Para obter mais informações, consulte [Gerenciamento o AWS SAM CLI com o Homebrew](manage-sam-cli-versions.md#manage-sam-cli-versions-homebrew).
Recomendamos o uso de um dos métodos de instalação primários documentados nesta página. Antes de usar um desses métodos, consulte [Mudar de Homebrew](manage-sam-cli-versions.md#manage-sam-cli-versions-switch).
Para obter detalhes adicionais, consulte a [Versão de lançamento: 1.121.0](https://github.com/aws/aws-sam-cli/releases).

 Para instalar o AWS SAMCLI, siga as instruções do seu sistema operacional. 

### Linux
<a name="install-sam-cli-instructions-linux"></a>

------
#### [ x86\$164 - command line installer ]

1. Baixe o arquivo [AWS SAM CLI .zip](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip) para um diretório de sua escolha.

1. **(Opcional)** Você pode verificar a integridade do instalador antes da instalação. Para obter instruções, consulte [Opcional: verificar a integridade do instalador da CLI do AWS SAM](reference-sam-cli-install-verify.md).

1. Descompacte os arquivos de instalação em um diretório de sua escolha. Veja a seguir um exemplo, usando o subdiretório `sam-installation`.
**nota**  
Se o sistema operacional não tiver o comando **unzip** integrado, use um equivalente.

   ```
   $ unzip aws-sam-cli-linux-x86_64.zip -d sam-installation
   ```

1. Instale o AWS SAMCLI executando o `install` executável. Esse executável está localizado no diretório usado na etapa anterior. Veja a seguir um exemplo, usando o subdiretório `sam-installation`:

   ```
   $ sudo ./sam-installation/install
   ```

1. Verifique a instalação.

   ```
   $ sam --version
   ```

   Para confirmar uma instalação com êxito, você deve ver uma saída que substitua o seguinte texto entre colchetes pela versão mais recente disponível:

   ```
    SAM CLI, <latest version>
   ```

------
#### [ arm64 - command line installer ]

1. Baixe o arquivo [AWS SAM CLI .zip](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-arm64.zip) para um diretório de sua escolha.

1. **(Opcional)** Você pode verificar a integridade do instalador antes da instalação. Para obter instruções, consulte [Opcional: verificar a integridade do instalador da CLI do AWS SAM](reference-sam-cli-install-verify.md).

1. Descompacte os arquivos de instalação em um diretório de sua escolha. Veja a seguir um exemplo, usando o subdiretório `sam-installation`.
**nota**  
Se o sistema operacional não tiver o comando **unzip** integrado, use um equivalente.

   ```
   $ unzip aws-sam-cli-linux-arm64.zip -d sam-installation
   ```

1. Instale o AWS SAMCLI executando o `install` executável. Esse executável está localizado no diretório usado na etapa anterior. Veja a seguir um exemplo, usando o subdiretório `sam-installation`:

   ```
   $ sudo ./sam-installation/install
   ```

1. Verifique a instalação.

   ```
   $ sam --version
   ```

   Para confirmar uma instalação com êxito, você deve ver uma saída semelhante à seguinte, mas que substitua o texto entre colchetes pela versão mais recente da CLI do SAM:

   ```
    SAM CLI, <latest version>
   ```

------

### macOS
<a name="install-sam-cli-instructions-macos"></a>

#### Etapas de instalação
<a name="install-sam-cli-instructions-macos-steps"></a>

Use o instalador do pacote para instalar AWS SAMCLI o. Além disso, o instalador do pacote tem dois métodos de instalação que você pode escolher: **GUI** e **Linha de comendo**. Você pode instalar para **todos os usuários** ou apenas para o **usuário atual**. Para instalar para todos os usuários, é necessária autorização de superusuário. 

**nota**  
AWS SAM A CLI não é compatível com versões do macOS anteriores ao macOS 13.x. Atualize para uma versão compatível do macOS ou instale a CLI AWS SAM com o. Homebrew

------
#### [ GUI - All users ]

**Para baixar o instalador do pacote e instalar a CLI do AWS SAM**
**nota**  
 Se você instalou anteriormente o AWS SAMCLI por meio do Homebrew ou do pip, você precisa desinstalá-lo primeiro. Para instruções, consulte [Desinstalando o AWS SAMCLI](manage-sam-cli-versions.md#manage-sam-cli-versions-uninstall). 

1.  Baixe o `pkg` do macOS para um diretório de sua escolha: 
   +  **Para Macs com processadores Intel, escolha x86\$164** [— -x86\$164.pkg aws-sam-cli-macos](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-x86_64.pkg) 
   +  **Para Macs que executam Apple Silicon, escolha arm64** [— -arm64.pkg aws-sam-cli-macos](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-arm64.pkg) 
**nota**  
Você tem a opção de verificar a integridade do instalador antes da instalação. Para instruções, consulte [Opcional: verificar a integridade do instalador da CLI do AWS SAM](reference-sam-cli-install-verify.md).

1.  Execute o arquivo baixado e siga as instruções na tela para continuar com as etapas de **Introdução**, **Leia-me** e **Licença**. 

1.  Em **Seleção de destino**, selecione **Instalar para todos os usuários deste computador**. 

1.  Em **Tipo de instalação**, escolha onde AWS SAMCLI será instalado e pressione **Instalar**. A localização padrão recomendada é `/usr/local/aws-sam-cli`. 
**nota**  
 Para invocar o AWS SAMCLI com o comando, **sam** o instalador cria automaticamente um symlink entre `/usr/local/bin/sam` e `/usr/local/aws-sam-cli/sam` ou a pasta de instalação que você escolheu. 

1.  A mensagem AWS SAMCLI será instalada e **A instalação foi bem-sucedida** será exibida. Pressione **Fechar**. 

**Para verificar uma instalação bem-sucedida**
+  Verifique se o AWS SAMCLI foi instalado corretamente e se seu symlink está configurado executando: 

  ```
  $ which sam
  /usr/local/bin/sam
  $ sam --version
  SAM CLI, <latest version>
  ```

------
#### [ GUI - Current user ]

**Para baixar e instalar a CLI do AWS SAM**
**nota**  
 Se você instalou anteriormente o AWS SAMCLI por meio do Homebrew ou do pip, você precisa desinstalá-lo primeiro. Para instruções, consulte [Desinstalando o AWS SAMCLI](manage-sam-cli-versions.md#manage-sam-cli-versions-uninstall). 

1.  Baixe o `pkg` do macOS para um diretório de sua escolha: 
   +  **Para Macs com processadores Intel, escolha x86\$164** [— -x86\$164.pkg aws-sam-cli-macos](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-x86_64.pkg) 
   +  **Para Macs que executam Apple Silicon, escolha arm64** [— -arm64.pkg aws-sam-cli-macos](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-arm64.pkg) 
**nota**  
Você tem a opção de verificar a integridade do instalador antes da instalação. Para instruções, consulte [Opcional: verificar a integridade do instalador da CLI do AWS SAM](reference-sam-cli-install-verify.md).

1.  Execute o arquivo baixado e siga as instruções na tela para continuar com as etapas de **Introdução**, **Leia-me** e **Licença**. 

1.  Em **Seleção de destino**, selecione **Instalar somente para mim**. Caso não visualize essa opção, vá para a próxima etapa. 

1.  Para **Tipo de instalação**, faça o seguinte: 

   1. Escolha onde o AWS SAMCLI será instalado. O local padrão é `/usr/local/aws-sam-cli`. Selecione um local para o qual você tenha permissões de escrita. Para alterar o local da instalação, selecione **local** e escolha seu local. Pressione **Continuar** quando terminar. 

   1.  Se você não teve a opção de escolher **Instalar somente para mim** na etapa anterior, selecione **Alterar local de instalação** > **Instalar somente para mim** e pressione **Continuar**. 

   1.  Pressione **Instalar**. 

1.  A mensagem AWS SAMCLI será instalada e **A instalação foi bem-sucedida** será exibida. Pressione **Fechar**. 

**Como criar um symlink**
+  Para invocar o AWS SAMCLI com o comando **sam**, você deve criar manualmente um symlink entre o programa AWS SAMCLI e o seu `$PATH`. Crie seu symlink modificando e executando o seguinte comando: 

  ```
  $ sudo ln -s /path-to/aws-sam-cli/sam /path-to-symlink-directory/sam
  ```
  +  *sudo*— Se o seu usuário tiver permissões de gravação para`$PATH`, não **sudo** é necessário. Caso contrário, o **sudo** será obrigatório. 
  +  *path-to*— Caminho até onde você instalou o AWS SAMCLI programa. Por exemplo, .`/Users/myUser/Desktop` 
  +  *path-to-symlink-directory*— Sua variável de `$PATH` ambiente. O local padrão é `/usr/local/bin`. 

**Para verificar uma instalação bem-sucedida**
+  Verifique se o AWS SAMCLI foi instalado corretamente e se seu symlink está configurado executando: 

  ```
  $ which sam
  /usr/local/bin/sam
  $ sam --version
  SAM CLI, <latest version>
  ```

------
#### [ Command line - All users ]

**Para baixar e instalar a CLI do AWS SAM**
**nota**  
 Se você instalou anteriormente o AWS SAMCLI por meio do Homebrew ou do pip, você precisa desinstalá-lo primeiro. Para instruções, consulte [Desinstalando o AWS SAMCLI](manage-sam-cli-versions.md#manage-sam-cli-versions-uninstall). 

1.  Baixe o `pkg` do macOS para um diretório de sua escolha: 
   +  **Para Macs com processadores Intel, escolha x86\$164** [— -x86\$164.pkg aws-sam-cli-macos](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-x86_64.pkg) 
   +  **Para Macs que executam Apple Silicon, escolha arm64** [— -arm64.pkg aws-sam-cli-macos](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-arm64.pkg) 
**nota**  
Você tem a opção de verificar a integridade do instalador antes da instalação. Para instruções, consulte [Opcional: verificar a integridade do instalador da CLI do AWS SAM](reference-sam-cli-install-verify.md).

1.  Modifique e execute o script de instalação: 

   ```
   $ sudo installer -pkg path-to-pkg-installer/name-of-pkg-installer -target /
   installer: Package name is AWS SAM CLI
   installer: Upgrading at base path /
   installer: The upgrade was successful.
   ```
**nota**  
 Para invocar o AWS SAMCLI com o comando **sam**, o instalador cria automaticamente um symlink entre `/usr/local/bin/sam` e `/usr/local/aws-sam-cli/sam`. 

**Para verificar uma instalação bem-sucedida**
+  Verifique se o AWS SAMCLI foi instalado corretamente e se seu symlink está configurado executando: 

  ```
  $ which sam
  /usr/local/bin/sam
  $ sam --version
  SAM CLI, <latest version>
  ```

------
#### [ Command line - Current user ]

**Para baixar e instalar a CLI do AWS SAM**
**nota**  
 Se você instalou anteriormente o AWS SAMCLI por meio do Homebrew ou do pip, você precisa desinstalá-lo primeiro. Para instruções, consulte [Desinstalando o AWS SAMCLI](manage-sam-cli-versions.md#manage-sam-cli-versions-uninstall). 

1.  Baixe o `pkg` do macOS para um diretório de sua escolha: 
   +  **Para Macs com processadores Intel, escolha x86\$164** [— -x86\$164.pkg aws-sam-cli-macos](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-x86_64.pkg) 
   +  **Para Macs que executam Apple Silicon, escolha arm64** [— -arm64.pkg aws-sam-cli-macos](https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-macos-arm64.pkg) 
**nota**  
Você tem a opção de verificar a integridade do instalador antes da instalação. Para instruções, consulte [Opcional: verificar a integridade do instalador da CLI do AWS SAM](reference-sam-cli-install-verify.md).

1.  Determine um diretório de instalação no qual você tenha permissões de escrita. Em seguida, crie um arquivo `xml` usando o modelo e modifique-o para refletir seu diretório de instalação. O diretório já deve existir. 

    Por exemplo, se você *path-to-my-directory* substituir por`/Users/myUser/Desktop`, a pasta do `aws-sam-cli` programa será instalada lá. 

   ```
   <?xml version="1.0" encoding="UTF-8"?>
   <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
   <plist version="1.0">
     <array>
       <dict>
         <key>choiceAttribute</key>
         <string>customLocation</string>
         <key>attributeSetting</key>
         <string>path-to-my-directory</string>
         <key>choiceIdentifier</key>
         <string>default</string>
       </dict>
     </array>
   </plist>
   ```

1.  Salve o arquivo `xml` e verifique se ele é válido executando o seguinte: 

   ```
   $ installer -pkg path-to-pkg-installer \
   -target CurrentUserHomeDirectory \
   -showChoicesAfterApplyingChangesXML path-to-your-xml-file
   ```

    A saída deve exibir as preferências que serão aplicadas ao programa AWS SAMCLI. 

1.  Execute o seguinte para instalar o AWS SAMCLI: 

   ```
   $ installer -pkg path-to-pkg-installer \
   -target CurrentUserHomeDirectory \
   -applyChoiceChangesXML path-to-your-xml-file
   
   # Example output
   installer: Package name is AWS SAM CLI
   installer: choices changes file 'path-to-your-xml-file' applied
   installer: Upgrading at base path base-path-of-xml-file
   installer: The upgrade was successful.
   ```

**Como criar um symlink**
+  Para invocar o AWS SAMCLI com o comando **sam**, você deve criar manualmente um symlink entre o programa AWS SAMCLI e o seu `$PATH`. Crie seu symlink modificando e executando o seguinte comando: 

  ```
  $ sudo ln -s /path-to/aws-sam-cli/sam /path-to-symlink-directory/sam
  ```
  +  *sudo*— Se o seu usuário tiver permissões de gravação para`$PATH`, não **sudo** é necessário. Caso contrário, o **sudo** será obrigatório. 
  +  *path-to*— Caminho até onde você instalou o AWS SAMCLI programa. Por exemplo, .`/Users/myUser/Desktop` 
  +  *path-to-symlink-directory*— Sua variável de `$PATH` ambiente. O local padrão é `/usr/local/bin`. 

**Para verificar uma instalação bem-sucedida**
+  Verifique se o AWS SAMCLI foi instalado corretamente e se seu symlink está configurado executando: 

  ```
  $ which sam
  /usr/local/bin/sam
  $ sam --version
  SAM CLI, <latest version>
  ```

------

### Windows
<a name="install-sam-cli-instructions-windows"></a>

Os arquivos do Windows Installer (MSI) são os arquivos do instalador de pacotes para o sistema operacional Windows.

Siga estas etapas para instalar o AWS SAMCLI usando o arquivo MSI.

1. Baixe a versão AWS SAMCLI [de 64 bits](https://github.com/aws/aws-sam-cli/releases/latest/download/AWS_SAM_CLI_64_PY3.msi).

1. **(Opcional)** Você pode verificar a integridade do instalador antes da instalação. Para obter instruções, consulte [Opcional: verificar a integridade do instalador da CLI do AWS SAM](reference-sam-cli-install-verify.md). 

1. Verifique a instalação.

   Depois de concluir a instalação, verifique-a abrindo um novo prompt de comando ou PowerShell prompt. O usuário deverá ser capaz de invocar a `sam` partir da linha de comando.

   ```
   sam --version
   ```

   Após a instalação bem-sucedida do AWS SAMCLI, você deverá ver uma saída como a seguinte:

   ```
   SAM CLI, <latest version>
   ```

1. Ative caminhos longos (somente Windows 10 e versões mais recentes).
**Importante**  
Eles AWS SAMCLI podem interagir com caminhos de arquivo que excedam a limitação máxima de caminhos do Windows. Isso pode causar erros durante a execução de `sam init` devido às limitações de **MAX\$1PATH** do Windows 10. Para solucionar esse problema, o novo comportamento de caminhos longos deverá ser configurado.

   Para habilitar caminhos longos, consulte [Habilitar caminhos longos no Windows 10, versão 1607 e posteriores](https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=powershell#enable-long-paths-in-windows-10-version-1607-and-later) na *documentação de desenvolvimento de aplicativos do Microsoft Windows*.

1. Instale o Git.

   Para baixar aplicativos de amostra usando o comando `sam init`, você também deve instalar o Git. Para obter instruções, consulte [Instalando o Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git).

## Solução de problemas de erros de instalação do
<a name="sam-cli-troubleshoot-install"></a>

### Linux
<a name="sam-cli-troubleshoot-install-linux"></a>

#### Erro do Docker: “Não é possível conectar-se ao daemon do Docker. O daemon do docker está sendo executado neste host?”
<a name="serverless-sam-cli-install-linux-troubleshooting-docker-deamon"></a>

Em alguns casos, para obter permissões para o `ec2-user` acessar o daemon do Docker, pode ser necessário reinicializar sua instância. Se você receber esse erro, tente reinicializar sua instância.

#### Erro de shell: “comando não encontrado”
<a name="serverless-sam-cli-install-linux-troubleshooting-sam-cli-not-found"></a>

Se você receber esse erro, seu shell não conseguirá localizar o AWS SAMCLI executável no caminho. Verifique a localização do diretório em que você instalou o AWS SAMCLI executável e, em seguida, verifique se o diretório está no seu caminho.

#### AWS SAMCLIerro: “/lib64/libc.so.6: versão `GLIBC\$12.14' não encontrada (exigida por/.so.1)” usr/local/aws-sam-cli/dist/libz
<a name="serverless-sam-cli-install-linux-troubleshooting-sam-cli-missing-lib"></a>

Se você receber esse erro, você está usando uma versão incompatível do Linux e a versão glibc integrada está desatualizada. Tente um dos seguintes:
+ Atualize seu host Linux para a versão de 64 bits de uma distribuição recente do CentOS, Fedora, Ubuntu ou Amazon Linux 2.
+ Siga as instruções para [Instale o AWS SAM CLI](#install-sam-cli).

### macOS
<a name="sam-cli-troubleshoot-install-macos"></a>

#### A instalação falhou
<a name="sam-cli-troubleshoot-install-macos-install-failed"></a>

![\[Imagem do instalador AWS SAMCLI mostrando uma mensagem de falha na instalação\]](http://docs.aws.amazon.com/pt_br/serverless-application-model/latest/developerguide/images/sam-cli-troubleshoot-install-macos-install-failed.jpg)


 Se você estiver instalando o AWS SAMCLI para seu usuário e selecionou um diretório de instalação para o qual não tem permissões de escrita, esse erro pode ocorrer. Tente um dos seguintes: 

1.  Selecione um diretório de instalação diferente para o qual você tenha permissões de escrita. 

1.  Exclua o instalador. Em seguida, faça o download e execute-o novamente. 

## Próximas etapas
<a name="install-sam-cli-next-steps"></a>

Para saber mais sobre o AWS SAMCLI e começar a criar os aplicativos com tecnologia sem servidor, consulte o seguinte:
+ [Tutorial: implante um aplicativo Hello World com AWS SAM](serverless-getting-started-hello-world.md)— Step-by-step instruções para baixar, criar e implantar um aplicativo básico sem servidor.
+ [O AWS SAM Workshop Completo](https://catalog.workshops.aws/complete-aws-sam/en-US) — Um workshop projetado para ensinar a você muitos dos principais recursos que AWS SAM oferece.
+ [AWS SAM exemplos de aplicativos e padrões](https://serverlessland.com/patterns?framework=AWS+SAM) — Exemplos de aplicativos e padrões de autores da comunidade com os quais você pode experimentar ainda mais.

# Opcional: verificar a integridade do instalador da CLI do AWS SAM
<a name="reference-sam-cli-install-verify"></a>

Ao instalar a interface de linha de AWS Serverless Application Model comando (AWS SAMCLI) usando um instalador de pacotes, você pode verificar sua integridade antes da instalação. Essa etapa é opcional, mas altamente recomendada.

As duas opções de verificação disponíveis para você são:
+ Verifique o arquivo de assinatura do instalador do pacote.
+ Verifique o valor do hash do instalador do pacote.

Quando disponível para sua plataforma, recomendamos verificar a opção de arquivo de assinatura. Essa opção oferece uma camada extra de segurança, pois os valores-chave são publicados aqui e gerenciados separadamente do nosso repositório GitHub.

**Topics**
+ [

## Verifique o arquivo de assinatura do instalador
](#reference-sam-cli-install-verify-signature)
+ [

## Verifique o valor do hash
](#reference-sam-cli-install-verify-hash)

## Verifique o arquivo de assinatura do instalador
<a name="reference-sam-cli-install-verify-signature"></a>

### Linux
<a name="reference-sam-cli-install-verify-signature-linux"></a>

#### arm64 - instalador de linha de comando
<a name="reference-sam-cli-install-verify-signature-linux-arm64"></a>

AWS SAM usa o [GnuPG](https://www.gnupg.org/) para assinar AWS SAMCLI o instalador.zip. A verificação é executada nas seguintes etapas:

1. Use a chave pública primária para verificar a chave pública do signatário.

1. Use a chave pública do signatário para verificar o instalador do pacote AWS SAM CLI.

**Para verificar a integridade da chave pública do signatário**

1. Copie a chave pública primária e salve-a em sua máquina local como um arquivo `.txt`. Por exemplo, .*`primary-public-key.txt`*

   ```
   -----BEGIN PGP PUBLIC KEY BLOCK-----
   Version: GnuPG v2.0.22 (GNU/Linux)
   
   mQINBGRuSzMBEADsqiwOy78w7F4+sshaMFRIwRGNRm94p5Qey2KMZBxekFtoryVD
   D9jEOnvupx4tvhfBHz5EcUHCEOdl4MTqdBy6vVAshozgxVb9RE8JpECn5lw7XC69
   4Y7Gy1TKKQMEWtDXElkGxIFdUWvWjSnPlzfnoXwQYGeE93CUS3h5dImP22Yk1Ct6
   eGGhlcbg1X4L8EpFMj7GvcsU8f7ziVI/PyC1Xwy39Q8/I67ip5eU5ddxO/xHqrbL
   YC7+8pJPbRMej2twT2LrcpWWYAbprMtRoa6WfE0/thoo3xhHpIMHdPfAA86ZNGIN
   kRLjGUg7jnPTRW4Oin3pCc8nT4Tfc1QERkHm641gTC/jUvpmQsM6h/FUVP2i5iE/
   JHpJcMuL2Mg6zDo3x+3gTCf+Wqz3rZzxB+wQT3yryZs6efcQy7nROiRxYBxCSXX0
   2cNYzsYLb/bYaW8yqWIHD5IqKhw269gp2E5Khs60zgS3CorMb5/xHgXjUCVgcu8a
   a8ncdf9fjl3WS5p0ohetPbO2ZjWv+MaqrZOmUIgKbA4RpWZ/fU97P5BW9ylwmIDB
   sWy0cMxg8MlvSdLytPieogaM0qMg3u5qXRGBr6Wmevkty0qgnmpGGc5zPiUbtOE8
   CnFFqyxBpj5IOnG0KZGVihvn+iRxrv6GO7WWO92+Dc6m94U0EEiBR7QiOwARAQAB
   tDRBV1MgU0FNIENMSSBQcmltYXJ5IDxhd3Mtc2FtLWNsaS1wcmltYXJ5QGFtYXpv
   bi5jb20+iQI/BBMBCQApBQJkbkszAhsvBQkHhM4ABwsJCAcDAgEGFQgCCQoLBBYC
   AwECHgECF4AACgkQQv1fenOtiFqTuhAAzi5+ju5UVOWqHKevOJSO08T4QB8HcqAE
   SVO3mY6/j29knkcL8ubZP/DbpV7QpHPI2PB5qSXsiDTP3IYPbeY78zHSDjljaIK3
   njJLMScFeGPyfPpwMsuY4nzrRIgAtXShPA8N/k4ZJcafnpNqKj7QnPxiC1KaIQWm
   pOtvb8msUF3/s0UTa5Ys/lNRhVC0eGg32ogXGdojZA2kHZWdm9udLo4CDrDcrQT7
   NtDcJASapXSQL63XfAS3snEc4e1941YxcjfYZ33rel8K9juyDZfi1slWR/L3AviI
   QFIaqSHzyOtP1oinUkoVwL8ThevKD3Ag9CZflZLzNCV7yqlF8RlhEZ4zcE/3s9El
   WzCFsozb5HfE1AZonmrDh3SyOEIBMcS6vG5dWnvJrAuSYv2rX38++K5Pr/MIAfOX
   DOI1rtA+XDsHNv9lSwSy0lt+iClawZANO9IXCiN1rOYcVQlwzDFwCNWDgkwdOqS0
   gOA2f8NF9lE5nBbeEuYquoOl1Vy8+ICbgOFs9LoWZlnVh7/RyY6ssowiU9vGUnHI
   L8f9jqRspIz/Fm3JD86ntZxLVGkeZUz62FqErdohYfkFIVcv7GONTEyrz5HLlnpv
   FJ0MR0HjrMrZrnOVZnwBKhpbLocTsH+3t5It4ReYEX0f1DIOL/KRwPvjMvBVkXY5
   hblRVDQoOWc=
   =d9oG
   -----END PGP PUBLIC KEY BLOCK-----
   ```

1. Importe a chave pública primária para o seu chaveiro.

   ```
   $ gpg --import primary-public-key.txt
   							
   gpg: directory `/home/.../.gnupg' created
   gpg: new configuration file `/home/.../.gnupg/gpg.conf' created
   gpg: WARNING: options in `/home/.../.gnupg/gpg.conf' are not yet active during this run
   gpg: keyring `/home/.../.gnupg/secring.gpg' created
   gpg: keyring `/home/.../.gnupg/pubring.gpg' created
   gpg: /home/.../.gnupg/trustdb.gpg: trustdb created
   gpg: key 73AD885A: public key "AWS SAM CLI Primary <aws-sam-cli-primary@amazon.com>" imported
   gpg: Total number processed: 1
   gpg:               imported: 1  (RSA: 1)
   ```

1. Copie a chave pública do signatário e salve-a em sua máquina local como um arquivo `.txt`. Por exemplo, .*`signer-public-key.txt`*

   ```
   -----BEGIN PGP PUBLIC KEY BLOCK-----
   Version: GnuPG v2.0.22 (GNU/Linux)
   
   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
   LtZnq+n4SfeNbZjD2FQWZR4CrA==
   =lHfs
   -----END PGP PUBLIC KEY BLOCK-----
   ```

1. Importe a chave pública do assinante para o seu chaveiro.

   ```
   $ gpg --import signer-public-key.txt
   							
   gpg: key 4094ABB1BEDFDAB4: public key "AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>" imported
   gpg: Total number processed: 1
   gpg:               imported: 1  (RSA: 1)
   gpg: no ultimately trusted keys found
   ```

   Anote o valor chave da saída. Por exemplo, .*`4094ABB1BEDFDAB4`*

1. Use o valor da chave para obter e verificar a impressão digital da chave pública do signatário.

   ```
   $ gpg --fingerprint 4094ABB1BEDFDAB4
   							
   pub   rsa4096 2025-05-19 [SCEA] [expires: 2027-05-19]
         EF46 3E86 CA31 933B B688  CC1A 4094 ABB1 BEDF DAB4
   uid           [ unknown] AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>
   ```

   A impressão digital deve corresponder ao mostrado a seguir:

   ```
   EF46 3E86 CA31 933B B688  CC1A 4094 ABB1 BEDF DAB4
   ```

   Se a string de impressão digital não coincidir, não instale o instalador do AWS SAM CLI. Escale para a AWS SAM equipe [criando um problema](https://github.com/aws/aws-sam-cli/issues/new?assignees=&labels=stage%2Fneeds-triage&projects=&template=Bug_report.md&title=Bug%3A+TITLE) no *aws-sam-cli GitHub repositório*.

1. Verifique as assinaturas da chave pública do signatário:

   ```
   $ gpg --check-sigs 4094ABB1BEDFDAB4
   						  
   pub   rsa4096 2025-05-19 [SCEA] [expires: 2027-05-19]
         EF463E86CA31933BB688CC1A4094ABB1BEDFDAB4
   uid           [ unknown] AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>
   sig!3        4094ABB1BEDFDAB4 2025-05-19  [self-signature]
   sig!         42FD5F7A73AD885A 2025-05-19 AWS SAM CLI Primary <aws-sam-cli-primary@amazon.com>
   ```

   Se você vir `1 signature not checked due to a missing key`, repita as etapas anteriores para importar as chaves públicas primária e do signatário para o seu chaveiro.

   Você deve ver os valores da chave pública primária e da chave pública do signatário listados.

Agora que você verificou a integridade da chave pública do signatário, você pode usar a chave pública do signatário para verificar o instalador do pacote AWS SAM CLI.

**Para verificar a integridade do instalador do pacote AWS SAM CLI**

1. **Obtenha o arquivo de assinatura do pacote AWS SAM CLI** — Faça o download do arquivo de assinatura para o instalador do pacote AWS SAM CLI usando o seguinte comando:

   ```
   $ wget https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-arm64.zip.sig
   ```

1. **Verifique o arquivo de assinatura** Passe os nomes dos arquivos `.sig` e `.zip` baixados como parâmetros para o comando `gpg`. Este é um exemplo:

   ```
   $ gpg --verify aws-sam-cli-linux-arm64.zip.sig aws-sam-cli-linux-arm64.zip
   ```

   A saída deve ser semelhante à seguinte:

   ```
   gpg: Signature made Mon 19 May 2025 01:21:57 AM UTC using RSA key ID 4094ABB1BEDFDAB4
   gpg: Good signature from "AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>"
   gpg: WARNING: This key is not certified with a trusted signature!
   gpg:          There is no indication that the signature belongs to the owner.
   Primary key fingerprint: EF46 3E86 CA31 933B B688  CC1A 4094 ABB1 BEDF DAB4
   ```
   + A mensagem `WARNING: This key is not certified with a trusted signature!` pode ser ignorada. Isso ocorre porque não há uma cadeia de confiança entre a chave PGP pessoal (se você tiver uma) e a chave CLI PGP do AWS SAM . Para obter mais informações, consulte [Web of trust](https://en.wikipedia.org/wiki/Web_of_trust).
   + Se a saída inclui a frase `BAD signature`, verifique se você executou o procedimento corretamente. Se você continuar recebendo essa resposta, encaminhe para a AWS SAM equipe [criando um problema](https://github.com/aws/aws-sam-cli/issues/new?assignees=&labels=stage%2Fneeds-triage&projects=&template=Bug_report.md&title=Bug%3A+TITLE) no *aws-sam-cli GitHub repositório* e evite usar o arquivo baixado.

   A mensagem `Good signature from "AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>"` significa que a assinatura foi verificada e você pode prosseguir com a instalação.

#### x86\$164 - instalador de linha de comando
<a name="reference-sam-cli-install-verify-signature-linux-x8664"></a>

AWS SAM usa o [GnuPG](https://www.gnupg.org/) para assinar AWS SAMCLI o instalador.zip. A verificação é executada nas seguintes etapas:

1. Use a chave pública primária para verificar a chave pública do signatário.

1. Use a chave pública do signatário para verificar o instalador do pacote AWS SAM CLI.

**Para verificar a integridade da chave pública do signatário**

1. Copie a chave pública primária e salve-a em sua máquina local como um arquivo `.txt`. Por exemplo, .*`primary-public-key.txt`*

   ```
   -----BEGIN PGP PUBLIC KEY BLOCK-----
   Version: GnuPG v2.0.22 (GNU/Linux)
   
   mQINBGRuSzMBEADsqiwOy78w7F4+sshaMFRIwRGNRm94p5Qey2KMZBxekFtoryVD
   D9jEOnvupx4tvhfBHz5EcUHCEOdl4MTqdBy6vVAshozgxVb9RE8JpECn5lw7XC69
   4Y7Gy1TKKQMEWtDXElkGxIFdUWvWjSnPlzfnoXwQYGeE93CUS3h5dImP22Yk1Ct6
   eGGhlcbg1X4L8EpFMj7GvcsU8f7ziVI/PyC1Xwy39Q8/I67ip5eU5ddxO/xHqrbL
   YC7+8pJPbRMej2twT2LrcpWWYAbprMtRoa6WfE0/thoo3xhHpIMHdPfAA86ZNGIN
   kRLjGUg7jnPTRW4Oin3pCc8nT4Tfc1QERkHm641gTC/jUvpmQsM6h/FUVP2i5iE/
   JHpJcMuL2Mg6zDo3x+3gTCf+Wqz3rZzxB+wQT3yryZs6efcQy7nROiRxYBxCSXX0
   2cNYzsYLb/bYaW8yqWIHD5IqKhw269gp2E5Khs60zgS3CorMb5/xHgXjUCVgcu8a
   a8ncdf9fjl3WS5p0ohetPbO2ZjWv+MaqrZOmUIgKbA4RpWZ/fU97P5BW9ylwmIDB
   sWy0cMxg8MlvSdLytPieogaM0qMg3u5qXRGBr6Wmevkty0qgnmpGGc5zPiUbtOE8
   CnFFqyxBpj5IOnG0KZGVihvn+iRxrv6GO7WWO92+Dc6m94U0EEiBR7QiOwARAQAB
   tDRBV1MgU0FNIENMSSBQcmltYXJ5IDxhd3Mtc2FtLWNsaS1wcmltYXJ5QGFtYXpv
   bi5jb20+iQI/BBMBCQApBQJkbkszAhsvBQkHhM4ABwsJCAcDAgEGFQgCCQoLBBYC
   AwECHgECF4AACgkQQv1fenOtiFqTuhAAzi5+ju5UVOWqHKevOJSO08T4QB8HcqAE
   SVO3mY6/j29knkcL8ubZP/DbpV7QpHPI2PB5qSXsiDTP3IYPbeY78zHSDjljaIK3
   njJLMScFeGPyfPpwMsuY4nzrRIgAtXShPA8N/k4ZJcafnpNqKj7QnPxiC1KaIQWm
   pOtvb8msUF3/s0UTa5Ys/lNRhVC0eGg32ogXGdojZA2kHZWdm9udLo4CDrDcrQT7
   NtDcJASapXSQL63XfAS3snEc4e1941YxcjfYZ33rel8K9juyDZfi1slWR/L3AviI
   QFIaqSHzyOtP1oinUkoVwL8ThevKD3Ag9CZflZLzNCV7yqlF8RlhEZ4zcE/3s9El
   WzCFsozb5HfE1AZonmrDh3SyOEIBMcS6vG5dWnvJrAuSYv2rX38++K5Pr/MIAfOX
   DOI1rtA+XDsHNv9lSwSy0lt+iClawZANO9IXCiN1rOYcVQlwzDFwCNWDgkwdOqS0
   gOA2f8NF9lE5nBbeEuYquoOl1Vy8+ICbgOFs9LoWZlnVh7/RyY6ssowiU9vGUnHI
   L8f9jqRspIz/Fm3JD86ntZxLVGkeZUz62FqErdohYfkFIVcv7GONTEyrz5HLlnpv
   FJ0MR0HjrMrZrnOVZnwBKhpbLocTsH+3t5It4ReYEX0f1DIOL/KRwPvjMvBVkXY5
   hblRVDQoOWc=
   =d9oG
   -----END PGP PUBLIC KEY BLOCK-----
   ```

1. Importe a chave pública primária para o seu chaveiro.

   ```
   $ gpg --import primary-public-key.txt
   							
   gpg: directory `/home/.../.gnupg' created
   gpg: new configuration file `/home/.../.gnupg/gpg.conf' created
   gpg: WARNING: options in `/home/.../.gnupg/gpg.conf' are not yet active during this run
   gpg: keyring `/home/.../.gnupg/secring.gpg' created
   gpg: keyring `/home/.../.gnupg/pubring.gpg' created
   gpg: /home/.../.gnupg/trustdb.gpg: trustdb created
   gpg: key 73AD885A: public key "AWS SAM CLI Primary <aws-sam-cli-primary@amazon.com>" imported
   gpg: Total number processed: 1
   gpg:               imported: 1  (RSA: 1)
   ```

1. Copie a chave pública do signatário e salve-a em sua máquina local como um arquivo `.txt`. Por exemplo, .*`signer-public-key.txt`*

   ```
   -----BEGIN PGP PUBLIC KEY BLOCK-----
   Version: GnuPG v2.0.22 (GNU/Linux)
   
   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
   LtZnq+n4SfeNbZjD2FQWZR4CrA==
   =lHfs
   -----END PGP PUBLIC KEY BLOCK-----
   ```

1. Importe a chave pública do assinante para o seu chaveiro.

   ```
   $ gpg --import signer-public-key.txt
   							
   gpg: key 4094ABB1BEDFDAB4: public key "AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>" imported
   gpg: Total number processed: 1
   gpg:               imported: 1  (RSA: 1)
   gpg: no ultimately trusted keys found
   ```

   Anote o valor chave da saída. Por exemplo, .*`4094ABB1BEDFDAB4`*

1. Use o valor da chave para obter e verificar a impressão digital da chave pública do signatário.

   ```
   $ gpg --fingerprint 4094ABB1BEDFDAB4
   						  
   pub   rsa4096 2025-05-19 [SCEA] [expires: 2027-05-19]
         EF46 3E86 CA31 933B B688  CC1A 4094 ABB1 BEDF DAB4
   uid           [ unknown] AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>
   ```

   A impressão digital deve corresponder ao mostrado a seguir:

   ```
   EF46 3E86 CA31 933B B688  CC1A 4094 ABB1 BEDF DAB4
   ```

   Se a string de impressão digital não coincidir, não instale o instalador do AWS SAM CLI. Escale para a AWS SAM equipe [criando um problema](https://github.com/aws/aws-sam-cli/issues/new?assignees=&labels=stage%2Fneeds-triage&projects=&template=Bug_report.md&title=Bug%3A+TITLE) no *aws-sam-cli GitHub repositório*.

1. Verifique as assinaturas da chave pública do signatário:

   ```
   $ gpg --check-sigs 4094ABB1BEDFDAB4
   							
   pub   rsa4096 2025-05-19 [SCEA] [expires: 2027-05-19]
         EF463E86CA31933BB688CC1A4094ABB1BEDFDAB4
   uid           [ unknown] AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>
   sig!3        4094ABB1BEDFDAB4 2025-05-19  [self-signature]
   sig!         42FD5F7A73AD885A 2025-05-19 AWS SAM CLI Primary <aws-sam-cli-primary@amazon.com>
   ```

   Se você vir `1 signature not checked due to a missing key`, repita as etapas anteriores para importar as chaves públicas primária e do signatário para o seu chaveiro.

   Você deve ver os valores da chave pública primária e da chave pública do signatário listados.

Agora que você verificou a integridade da chave pública do signatário, você pode usar a chave pública do signatário para verificar o instalador do pacote AWS SAM CLI.

**Para verificar a integridade do instalador do pacote AWS SAM CLI**

1. **Obtenha o arquivo de assinatura do pacote AWS SAM CLI** — Faça o download do arquivo de assinatura para o instalador do pacote AWS SAM CLI usando o seguinte comando:

   ```
   $ wget https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip.sig
   ```

1. **Verifique o arquivo de assinatura** Passe os nomes dos arquivos `.sig` e `.zip` baixados como parâmetros para o comando `gpg`. Este é um exemplo:

   ```
   $ gpg --verify aws-sam-cli-linux-x86_64.zip.sig aws-sam-cli-linux-x86_64.zip
   ```

   A saída deve ser semelhante à seguinte:

   ```
   gpg: Signature made Mon 19 May 2025 01:21:57 AM UTC using RSA key ID 4094ABB1BEDFDAB4
   gpg: Good signature from "AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>"
   gpg: WARNING: This key is not certified with a trusted signature!
   gpg:          There is no indication that the signature belongs to the owner.
   Primary key fingerprint: EF46 3E86 CA31 933B B688  CC1A 4094 ABB1 BEDF DAB4
   ```
   + A mensagem `WARNING: This key is not certified with a trusted signature!` pode ser ignorada. Isso ocorre porque não há uma cadeia de confiança entre a chave PGP pessoal (se você tiver uma) e a chave CLI PGP do AWS SAM . Para obter mais informações, consulte [Web of trust](https://en.wikipedia.org/wiki/Web_of_trust).
   + Se a saída inclui a frase `BAD signature`, verifique se você executou o procedimento corretamente. Se você continuar recebendo essa resposta, encaminhe para a AWS SAM equipe [criando um problema](https://github.com/aws/aws-sam-cli/issues/new?assignees=&labels=stage%2Fneeds-triage&projects=&template=Bug_report.md&title=Bug%3A+TITLE) no *aws-sam-cli GitHub repositório* e evite usar o arquivo baixado.

   A mensagem `Good signature from "AWS SAM CLI Team <aws-sam-cli-signer@amazon.com>"` significa que a assinatura foi verificada e você pode prosseguir com a instalação.

### macOS
<a name="reference-sam-cli-install-verify-signature-macos"></a>

#### Instalador de GUI e linha de comando
<a name="reference-sam-cli-install-verify-signature-macos-installer"></a>

Você pode verificar a integridade do arquivo de assinatura do instalador do pacote AWS SAM CLI usando a ferramenta `pkgutil` ou manualmente.

**Para verificar usando pkgutil**

1. Execute o comando a seguir, fornecendo o caminho para o instalador baixado na sua máquina local:

   ```
   $ pkgutil --check-signature /path/to/aws-sam-cli-installer.pkg
   ```

   Veja um exemplo a seguir:

   ```
   $ pkgutil --check-signature /Users/user/Downloads/aws-sam-cli-macos-arm64.pkg
   ```

1. Na saída, localize o **SHA256 fingerprint** para **Developer ID Installer: AMZN Mobile LLC**. Veja um exemplo a seguir:

   ```
   Package "aws-sam-cli-macos-arm64.pkg":
      Status: signed by a developer certificate issued by Apple for distribution
      Notarization: trusted by the Apple notary service
      Signed with a trusted timestamp on: 2026-01-28 07:39:16 +0000
      Certificate Chain:
       1. Developer ID Installer: AMZN Mobile LLC (94KV3E626L)
          Expires: 2030-09-26 00:18:06 +0000
          SHA256 Fingerprint:
              5C 45 BE 63 FD 52 10 07 2D 66 56 77 5C A9 FF 25 91 6D 3F 01 F7 0E
              9A 8A 05 F6 2D 62 B2 88 8D A9
          ------------------------------------------------------------------------
       2. Developer ID Certification Authority
          Expires: 2031-09-17 00:00:00 +0000
          SHA256 Fingerprint:
              F1 6C D3 C5 4C 7F 83 CE A4 BF 1A 3E 6A 08 19 C8 AA A8 E4 A1 52 8F
              D1 44 71 5F 35 06 43 D2 DF 3A
          ------------------------------------------------------------------------
       3. Apple Root CA
          Expires: 2035-02-09 21:40:36 +0000
          SHA256 Fingerprint:
              B0 B1 73 0E CB C7 FF 45 05 14 2C 49 F1 29 5E 6E DA 6B CA ED 7E 2C
              68 C5 BE 91 B5 A1 10 01 F0 24
   ```

1. O **Developer ID Installer: AMZN Mobile LLC SHA256 fingerprint** deve corresponder ao seguinte valor:

   ```
   5C 45 BE 63 FD 52 10 07 2D 66 56 77 5C A9 FF 25 91 6D 3F 01 F7 0E 9A 8A 05 F6 2D 62 B2 88 8D A9
   ```

   Se a string de impressão digital não coincidir, não instale o instalador do AWS SAM CLI. Escale para a AWS SAM equipe [criando um problema](https://github.com/aws/aws-sam-cli/issues/new?assignees=&labels=stage%2Fneeds-triage&projects=&template=Bug_report.md&title=Bug%3A+TITLE) no *aws-sam-cli GitHub repositório*. Se a sequência de caracteres da impressão digital corresponder, você poderá continuar usando o instalador de pacotes.

**Para verificar o instalador do pacote manualmente**
+ Consulte [Como verificar a autenticidade das atualizações de software da Apple baixadas manualmente](https://support.apple.com/en-us/HT202369) no *site de suporte da Apple*.

### Windows
<a name="reference-sam-cli-install-verify-signature-windows"></a>

O AWS SAMCLI instalador é empacotado como MSI arquivos para o sistema Windows operacional.

**Para verificar o instalador da integridade do**

1. Clique com o botão direito do mouse no instalador e abra a janela **Propriedades**.

1. Escolha a guia **Assinaturas digitais**.

1. Em **Lista de assinaturas**, escolha **Amazon Web Services, Inc.** e, em seguida, escolha **Detalhes**.

1. Escolha a guia **Geral**, se ainda não estiver selecionada, e escolha **Visualizar certificado**.

1. Selecione a guia **Detalhes** e **Todos** na lista suspensa **Exibir**, se ela ainda não estiver selecionada.

1. Role para baixo até ver o campo **Impressão digital** e, em seguida, escolha **Impressão digital**. Isso exibe todo o valor da impressão digital na janela inferior.

1. Combine o valor da impressão digital com o valor a seguir. Se o valor corresponder, prossiga com a instalação. Caso contrário, encaminhe para a AWS SAM equipe [criando um problema](https://github.com/aws/aws-sam-cli/issues/new?assignees=&labels=stage%2Fneeds-triage&projects=&template=Bug_report.md&title=Bug%3A+TITLE) no *aws-sam-cli GitHub repositório*.

   ```
   cd62479397f09d72a04c7399a254b0a91da53d6c
   ```

## Verifique o valor do hash
<a name="reference-sam-cli-install-verify-hash"></a>

### Linux
<a name="reference-sam-cli-install-verify-hash-linux"></a>

#### x86\$164 - instalador de linha de comando
<a name="reference-sam-cli-install-verify-hash-linux-x8664"></a>

Verifique a integridade e a autenticidade dos arquivos do instalador baixados gerando um valor de hash usando o seguinte comando:

```
$ sha256sum aws-sam-cli-linux-x86_64.zip
```

A saída deve ser como o exemplo a seguir:

```
<64-character SHA256 hash value> aws-sam-cli-linux-x86_64.zip
```

[Compare o valor de hash SHA-256 de 64 caracteres com o valor da versão AWS SAM CLI desejada nas AWS SAM CLI notas de lançamento](https://github.com/aws/aws-sam-cli/releases/latest) em GitHub.

### macOS
<a name="reference-sam-cli-install-verify-hash-macos"></a>

#### Instalador de GUI e linha de comando
<a name="reference-sam-cli-install-verify-hash-macos-installer"></a>

 Verifique a integridade e a autenticidade do instalador baixado gerando um valor de hash usando o seguinte comando: 

```
$ shasum -a 256 path-to-pkg-installer/name-of-pkg-installer

# Examples
$ shasum -a 256 ~/Downloads/aws-sam-cli-macos-arm64.pkg
$ shasum -a 256 ~/Downloads/aws-sam-cli-macos-x86_64.pkg
```

 Compare seu valor de hash SHA-256 de 64 caracteres com o valor correspondente no repositório do GitHub de notas de versão do [AWS SAM CLI](https://github.com/aws/aws-sam-cli/releases/latest). 

# Tutorial: implante um aplicativo Hello World com AWS SAM
<a name="serverless-getting-started-hello-world"></a>

Neste tutorial, você usa a interface de linha de AWS Serverless Application Model comando (AWS SAMCLI) para concluir o seguinte:
+ Inicialize, crie e implante uma amostra do aplicativo **Hello World**.
+ Faça alterações locais e sincronize com AWS CloudFormation.
+ Execute testes locais no host de desenvolvimento.
+ Exclua a amostra do aplicativo do Nuvem AWS.

A amostra do aplicativo **Hello World** implementa um backend básico da API. É composto pelos seguintes recursos:
+ **Amazon API Gateway** — Endpoint de API que você usará para invocar sua função.
+ **AWS Lambda**— Função que processa a solicitação GET da API HTTP e retorna uma mensagem `hello world`.
+ **AWS Identity and Access Management Função (IAM)** — Provisiona permissões para que os serviços interajam com segurança.

O diagrama a seguir mostra os componentes deste aplicativo:

![\[Um diagrama de uma função do Lambda que é invocada quando você envia uma solicitação GET ao endpoint do API Gateway.\]](http://docs.aws.amazon.com/pt_br/serverless-application-model/latest/developerguide/images/gs-01.png)


**Topics**
+ [

## Pré-requisitos
](#serverless-getting-started-hello-world-prerequisites)
+ [

## Etapa 1: Inicialize o aplicativo de amostra Hello World
](#serverless-getting-started-hello-world-init)
+ [

## Etapa 2: crie seu aplicativo
](#serverless-getting-started-hello-world-build)
+ [

## Etapa 3: implantar seu aplicativo no Nuvem AWS
](#serverless-getting-started-hello-world-deploy)
+ [

## Etapa 4: Executar seu aplicativo
](#serverless-getting-started-hello-world-run)
+ [

## Etapa 5: Interaja com sua função no Nuvem AWS
](#serverless-getting-started-hello-world-remote-invoke)
+ [

## Etapa 6: Modifique e sincronize seu aplicativo com o Nuvem AWS
](#serverless-getting-started-hello-world-sync)
+ [

## Etapa 7: (opcional) Teste seu aplicativo localmente
](#serverless-getting-started-hello-world-test)
+ [

## Etapa 8: Exclua seu aplicativo do Nuvem AWS
](#serverless-getting-started-hello-world-delete)
+ [

## Solução de problemas
](#serverless-getting-started-hello-world-troubleshoot)
+ [

## Saiba mais
](#serverless-getting-started-hello-world-learn)

## Pré-requisitos
<a name="serverless-getting-started-hello-world-prerequisites"></a>

Verifique se você concluiu o seguinte:
+ [AWS SAM pré-requisitos](prerequisites.md)
+ [Instale o AWS SAM CLI](install-sam-cli.md)

**nota**  
Se você preferir usar o Visual Studio Code para desenvolvimento sem servidor, consulte [Criação de aplicativos sem servidor](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/sam-get-started.html#serverless-apps-create) no Guia step-by-step do usuário do Toolkit for VS AWS Code para obter instruções sobre como usar a interface do VS Code.

## Etapa 1: Inicialize o aplicativo de amostra Hello World
<a name="serverless-getting-started-hello-world-init"></a>

Nesta etapa, você usará o AWS SAMCLI para criar uma amostra de projeto de aplicativo **Hello World** em sua máquina local.

**Para inicializar o aplicativo Hello World de amostra**

1. Na sua linha de comando, execute o seguinte a partir de um diretório inicial de sua escolha:

   ```
   $ sam init
   ```
**nota**  
Esse comando inicializa a aplicação com tecnologia sem servidor, criando o diretório do projeto. O diretório contém vários arquivos e pastas, incluindo o `template.yaml` arquivo, que é seu AWS SAM modelo.  
A versão instalada do Python deve corresponder à propriedade `Runtime` especificada em `template.yaml`. Para cargas de trabalho de produção, recomendamos o uso do Python 3.12 ou versões anteriores que sejam totalmente compatíveis com ambientes. AWS Se as versões do Python não corresponderem, você encontrará erros de compilação.  
Para resolver problemas de compatibilidade de versões:  
 Especifique um [runtime](sam-cli-command-reference-sam-init.md#sam-cli-command-reference-sam-init-options-runtime) compatível durante a inicialização: `sam init --runtime python3.9`
Modifique a propriedade `Runtime` no `template.yaml` após a inicialização

1. O AWS SAMCLI guiará na inicialização de um novo aplicativo. Configure o seguinte:

   1. Selecione **AWS Modelos de início rápido** para escolher um modelo inicial.

   1. Escolha o modelo **Hello World Example** e baixe-o.

   1. Use o runtimePython e o tipo de pacote `zip`.

   1. Para este tutorial, desative o AWS X-Ray rastreamento. Para saber mais, consulte [O que é AWS X-Ray?](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) no *Guia do AWS X-Ray desenvolvedor*.

   1. Para este tutorial, desative o monitoramento com o Amazon CloudWatch Application Insights. Para saber mais, consulte [Amazon CloudWatch Application Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html) no *Guia CloudWatch do usuário da Amazon*.

   1. Para esse tutorial, opte por não configurar o registro em log estruturado no formato JSON nas funções do Lambda.

   1. Nomeie seu aplicativo como **sam-app**.

   Para usar o AWS SAM CLI fluxo interativo:
   + Os colchetes (`[ ]`) indicam valores padrão. Deixe sua resposta em branco para selecionar o valor padrão.
   + Digite **`y`** para **sim** e **`n`** para **não**.

   A seguir está um exemplo do `sam init` fluxo interativo:

   ```
   $ sam init
   ...
   Which template source would you like to use?
       1 - AWS Quick Start Templates
       2 - Custom Template Location
   Choice: 1
   
   Choose an AWS Quick Start application template
       1 - Hello World Example
       2 - Data processing
       3 - Hello World Example with Powertools for AWS Lambda
       4 - Multi-step workflow
       5 - Scheduled task
       6 - Standalone function
       7 - Serverless API
       8 - Infrastructure event management 
       9 - Lambda Response Streaming
      10 - GraphQLApi Hello World Example
      11 - Full Stack
      12 - Lambda EFS example
      13 - Serverless Connector Hello World Example
      14 - Multi-step workflow with Connectors
      15 - DynamoDB Example
      16 - Machine Learning
   Template: 1
   
   Use the most popular runtime and package type? (Python and zip) [y/N]: y
   
   Would you like to enable X-Ray tracing on the function(s) in your application?  [y/N]: ENTER
   
   Would you like to enable monitoring using CloudWatch Application Insights?
   For more info, please view https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html [y/N]: ENTER
   					
   Would you like to set Structured Logging in JSON format on your Lambda functions?  [y/N]: ENTER
   
   Project name [sam-app]: ENTER
   ```

1. O AWS SAMCLI baixa seu modelo inicial e cria a estrutura de diretórios do projeto do aplicativo em sua máquina local. A seguir, veja um exemplo da saída AWS SAM CLI:

   ```
   Cloning from https://github.com/aws/aws-sam-cli-app-templates (process may take a moment)
   
       -----------------------
       Generating application:
       -----------------------
       Name: sam-app
       Runtime: python3.9
       Architectures: x86_64
       Dependency Manager: pip
       Application Template: hello-world
       Output Directory: .
       Configuration file: sam-app/samconfig.toml
   
       Next steps can be found in the README file at sam-app/README.md
   
   
   Commands you can use next
   =========================
   [*] Create pipeline: cd sam-app && sam pipeline init --bootstrap
   [*] Validate SAM template: cd sam-app && sam validate
   [*] Test Function in the Cloud: cd sam-app && sam sync --stack-name {stack-name} --watch
   ```

1. Na sua linha de comando, vá para o diretório `sam-app` recém-criado. Veja a seguir um exemplo do que o AWS SAMCLI criou:
**nota**  
Se o comando `tree` não for instalado automaticamente, execute este comando: `brew install tree`

   ```
   $ cd sam-app
   
   $ tree
   
   ├── README.md
   ├── __init__.py
   ├── events
   │   └── event.json
   ├── hello_world
   │   ├── __init__.py
   │   ├── app.py
   │   └── requirements.txt
   ├── samconfig.toml
   ├── template.yaml
   └── tests
       ├── __init__.py
       ├── integration
       │   ├── __init__.py
       │   └── test_api_gateway.py
       ├── requirements.txt
       └── unit
           ├── __init__.py
           └── test_handler.py
           
   6 directories, 14 files
   ```

   Alguns arquivos importantes a serem destacados:
   + `hello_world/app.py`— Contém o código da função do Lambda.
   + `hello_world/requirements.txt`— Contém todas as dependências Python que sua função do Lambda exige.
   + `samconfig.toml`— Arquivo de configuração do seu aplicativo que armazena os parâmetros padrão usados pelo AWS SAMCLI.
   + `template.yaml`— O AWS SAM modelo que contém o código da infraestrutura do seu aplicativo.

Agora você tem um aplicativo com tecnologia sem servidor totalmente criado em sua máquina local\$1

## Etapa 2: crie seu aplicativo
<a name="serverless-getting-started-hello-world-build"></a>

Nesta etapa, você usa o AWS SAMCLI para criar seu aplicativo e se preparar para a implantação. Quando você cria, o AWS SAMCLI cria um diretório `.aws-sam` e organiza as dependências da função, o código do projeto e os arquivos do projeto nele.

**Para construir seu aplicativo**
+ Na sua linha de comando, no diretório do projeto `sam-app`, execute o seguinte:

  ```
  $ sam build
  ```
**nota**  
 Se você não tiver o Python na sua máquina local, use o comando **sam build --use-container ** em vez disso. O AWS SAMCLI criará um contêiner Docker que inclui o runtime as dependências da sua função. Esse comando exige o Docker na sua máquina local. Para instalar Docker, consulte [Instalação do Docker](install-docker.md).

  A seguir, veja um exemplo da saída AWS SAM CLI:

  ```
  $ sam build
  Starting Build use cache
  Manifest file is changed (new hash: 3298f1304...d4d421) or dependency folder (.aws-sam/deps/4d3dfad6-a267-47a6-a6cd-e07d6fae318c) is missing for (HelloWorldFunction), downloading dependencies and copying/building source
  Building codeuri: /Users/.../Demo/sam-tutorial1/sam-app/hello_world runtime: python3.9 metadata: {} architecture: x86_64 functions: HelloWorldFunction
  Running PythonPipBuilder:CleanUp
  Running PythonPipBuilder:ResolveDependencies
  Running PythonPipBuilder:CopySource
  Running PythonPipBuilder:CopySource
  
  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
  ```

  Veja a seguir um exemplo abreviado do diretório `.aws-sam` criado pela CLI AWS SAM :

  ```
  .aws-sam
  ├── build
  │   ├── HelloWorldFunction
  │   │   ├── __init__.py
  │   │   ├── app.py
  │   │   └── requirements.txt
  │   └── template.yaml
  └── build.toml
  ```

Alguns arquivos importantes a serem destacados:
+ `build/HelloWorldFunction`— – Contém o código da função do Lambda e as dependências. O AWS SAMCLI cria um diretório para cada função em seu aplicativo.
+ `build/template.yaml`— Contém uma cópia do seu AWS SAM modelo que é referenciada CloudFormation na implantação.
+ `build.toml`— Arquivo de configuração que armazena valores de parâmetros padrão referenciados pelo AWS SAMCLI ao criar e implantar seu aplicativo.

Agora você está pronto para implantar seu aplicativo no Nuvem AWS.

## Etapa 3: implantar seu aplicativo no Nuvem AWS
<a name="serverless-getting-started-hello-world-deploy"></a>

**nota**  
Essa etapa requer configuração de AWS credenciais. Para obter mais informações, consulte [Etapa 5: use o AWS CLI para configurar as AWS credenciais](prerequisites.md#prerequisites-configure-credentials) em [AWS SAM pré-requisitos](prerequisites.md).

Nesta etapa, você usa o AWS SAMCLI para implantar seu aplicativo no Nuvem AWS. Eles AWS SAMCLI farão o seguinte:
+ Orientá-lo na definição das configurações do seu aplicativo para implantação.
+ Faça o upload dos arquivos do seu aplicativo no Amazon Simple Storage Service (Amazon S3).
+ Transforme seu AWS SAM modelo em um CloudFormation modelo. Em seguida, ele carrega seu modelo no CloudFormation serviço para provisionar seus AWS recursos.

**Para implantar seu aplicativo**

1. Na sua linha de comando, no diretório do projeto `sam-app`, execute o seguinte:

   ```
   $ sam deploy --guided
   ```

1. Siga o fluxo AWS SAMCLI interativo para definir as configurações do aplicativo. Configure o seguinte:

   1. O **nome da CloudFormation pilha** — Uma pilha é uma coleção de AWS recursos que você pode gerenciar como uma única unidade. Para saber mais, consulte [Como trabalhar com pilhas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html) no *Guia do AWS CloudFormation usuário*.

   1. O **Região da AWS**para onde implantar sua CloudFormation pilha. Para obter mais informações, consulte [CloudFormation Endpoints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-endpoints.html) no *AWS CloudFormation Guia do usuário*.

   1. Neste tutorial, desative **confirmar as alterações antes da implantação**.

   1. Permitir a **criação de funções do IAM** — Isso permite AWS SAM criar a função do IAM necessária para que o recurso do API Gateway e o recurso da função Lambda interajam.

   1. Neste tutorial, desative a **desativação da reversão**.

   1. Permitir **HelloWorldFunction sem autorização definida** — Essa mensagem é exibida porque seu endpoint do API Gateway está configurado para ser acessível ao público, sem autorização. Como essa é a configuração pretendida para seu aplicativo Hello World, permita que o AWS SAMCLI continue. Para obter mais informações sobre a autorização, consulte [Controle o acesso à API com seu AWS SAM modelo](serverless-controlling-access-to-apis.md).

   1. **Salvar argumentos no arquivo de configuração** — Isso atualizará o arquivo `samconfig.toml` do seu aplicativo com suas preferências de implantação.

   1. Selecione o **nome do arquivo de configuração** padrão.

   1. Selecione o **ambiente de configuração** padrão.

   Veja a seguir um exemplo de saída do `sam deploy --guided` fluxo interativo:

   ```
   $ 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 [sam-app]: ENTER
       AWS Region [us-west-2]: ENTER
       #Shows you resources changes to be deployed and require a 'Y' to initiate deploy
       Confirm changes before deploy [Y/n]: 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]: ENTER
       #Preserves the state of previously provisioned resources when an operation fails
       Disable rollback [y/N]: ENTER
       HelloWorldFunction may not have authorization defined, Is this okay? [y/N]: y
       Save arguments to configuration file [Y/n]: ENTER
       SAM configuration file [samconfig.toml]: ENTER
       SAM configuration environment [default]: ENTER
   ```

1. O AWS SAMCLI implanta seu aplicativo fazendo o seguinte:
   + O AWS SAMCLI cria um bucket do Amazon S3 e carrega seu diretório `.aws-sam`.
   + O AWS SAMCLI transforma seu AWS SAM modelo em CloudFormation e o carrega no CloudFormation serviço.
   + CloudFormation provisiona seus recursos.

   Durante a implantação, o AWS SAMCLI exibe seu progresso. Veja a seguir um exemplo de saída:

   ```
   Looking for resources needed for deployment:
   
       Managed S3 bucket: aws-sam-cli-managed-default-samclisam-s3-demo-bucket-1a4x26zbcdkqr
       A different default S3 bucket can be set in samconfig.toml
   
       Parameter "stack_name=sam-app" in [default.deploy.parameters] is defined as a global parameter [default.global.parameters].
       This parameter will be only saved under [default.global.parameters] in /Users/.../Demo/sam-tutorial1/sam-app/samconfig.toml.
   
       Saved arguments to config file
       Running 'sam deploy' for future deployments will use the parameters saved above.
       The above parameters can be changed by modifying samconfig.toml
       Learn more about samconfig.toml syntax at
       https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-config.html
   
   File with same data already exists at sam-app/da3c598813f1c2151579b73ad788cac8, skipping upload
   
       Deploying with following values
       ===============================
       Stack name                   : sam-app
       Region                       : us-west-2
       Confirm changeset            : False
       Disable rollback             : False
       Deployment s3 bucket         : aws-sam-cli-managed-default-samclisam-s3-demo-bucket-1a4x26zbcdkqr
       Capabilities                 : ["CAPABILITY_IAM"]
       Parameter overrides          : {}
       Signing Profiles             : {}
   
   Initiating deployment
   =====================
   
   File with same data already exists at sam-app/2bebf67c79f6a743cc5312f6dfc1efee.template, skipping upload
   
   
   Waiting for changeset to be created..
   
   CloudFormation stack changeset
   ---------------------------------------------------------------------------------------------------------------------------------------------
   Operation                           LogicalResourceId                   ResourceType                        Replacement
   ---------------------------------------------------------------------------------------------------------------------------------------------
   * Modify                            HelloWorldFunction                  AWS::Lambda::Function               False
   * Modify                            ServerlessRestApi                   AWS::ApiGateway::RestApi            False
   - Delete                            AwsSamAutoDependencyLayerNestedSt   AWS::CloudFormation::Stack          N/A
                                       ack
   ---------------------------------------------------------------------------------------------------------------------------------------------
   
   
   Changeset created successfully. arn:aws:cloudformation:us-west-2:012345678910:changeSet/samcli-deploy1678917603/22e05525-08f9-4c52-a2c4-f7f1fd055072
   
   
   2023-03-15 12:00:16 - Waiting for stack create/update to complete
   
   CloudFormation events from stack operations (refresh every 0.5 seconds)
   ---------------------------------------------------------------------------------------------------------------------------------------------
   ResourceStatus                      ResourceType                        LogicalResourceId                   ResourceStatusReason
   ---------------------------------------------------------------------------------------------------------------------------------------------
   UPDATE_IN_PROGRESS                  AWS::Lambda::Function               HelloWorldFunction                  -
   UPDATE_COMPLETE                     AWS::Lambda::Function               HelloWorldFunction                  -
   UPDATE_COMPLETE_CLEANUP_IN_PROGRE   AWS::CloudFormation::Stack          sam-app                             -
   SS
   DELETE_IN_PROGRESS                  AWS::CloudFormation::Stack          AwsSamAutoDependencyLayerNestedSt   -
                                                                           ack
   DELETE_COMPLETE                     AWS::CloudFormation::Stack          AwsSamAutoDependencyLayerNestedSt   -
                                                                           ack
   UPDATE_COMPLETE                     AWS::CloudFormation::Stack          sam-app                             -
   ---------------------------------------------------------------------------------------------------------------------------------------------
   
   CloudFormation outputs from deployed stack
   ----------------------------------------------------------------------------------------------------------------------------------------------
   Outputs
   ----------------------------------------------------------------------------------------------------------------------------------------------
   Key                 HelloWorldFunctionIamRole
   Description         Implicit IAM Role created for Hello World function
   Value               arn:aws:iam::012345678910:role/sam-app-HelloWorldFunctionRole-15GLOUR9LMT1W
   
   Key                 HelloWorldApi
   Description         API Gateway endpoint URL for Prod stage for Hello World function
   Value               https://<restapiid>.execute-api.us-west-2.amazonaws.com/Prod/hello/
   
   Key                 HelloWorldFunction
   Description         Hello World Lambda Function ARN
   Value               arn:aws:lambda:us-west-2:012345678910:function:sam-app-HelloWorldFunction-yQDNe17r9maD
   ----------------------------------------------------------------------------------------------------------------------------------------------
   
   
   Successfully created/updated stack - sam-app in us-west-2
   ```

Seu aplicativo agora está implantado e executado no Nuvem AWS\$1

## Etapa 4: Executar seu aplicativo
<a name="serverless-getting-started-hello-world-run"></a>

Nesta etapa, você enviará uma solicitação GET para o endpoint da API e verá a saída da função do Lambda.

**Para obter o valor do endpoint da sua API**

1. A partir das informações exibidas pelo AWS SAMCLI na etapa anterior, localize a seção `Outputs`. Nesta seção, localize seu recurso `HelloWorldApi` para encontrar o valor do endpoint HTTP. Veja a seguir um exemplo de saída:

   ```
   ----------------------------------------------------------------------------------------------------------------------------------------------
   Outputs
   ----------------------------------------------------------------------------------------------------------------------------------------------
   ...
   Key                 HelloWorldApi
   Description         API Gateway endpoint URL for Prod stage for Hello World function
   Value               https://ets1gv8lxi.execute-api.us-west-2.amazonaws.com/Prod/hello/
   ...
   ----------------------------------------------------------------------------------------------------------------------------------------------
   ```

1. É possível também usar o comando **sam list endpoints --output json** para obter essas informações. Veja a seguir um exemplo de saída:

   ```
   $ sam list endpoints --output json
   2023-03-15 12:39:19 Loading policies from IAM...
   2023-03-15 12:39:25 Finished loading policies from IAM.
   [
     {
       "LogicalResourceId": "HelloWorldFunction",
       "PhysicalResourceId": "sam-app-HelloWorldFunction-yQDNe17r9maD",
       "CloudEndpoint": "-",
       "Methods": "-"
     },
     {
       "LogicalResourceId": "ServerlessRestApi",
       "PhysicalResourceId": "ets1gv8lxi",
       "CloudEndpoint": [
         "https://ets1gv8lxi.execute-api.us-west-2.amazonaws.com/Prod",
         "https://ets1gv8lxi.execute-api.us-west-2.amazonaws.com/Stage"
       ],
       "Methods": [
         "/hello['get']"
       ]
     }
   ]
   ```

**Para invocar sua função**
+ Usando seu navegador ou a linha de comando, envie uma solicitação GET para o endpoint da API. Veja a seguir um exemplo usando o comando curl:

  ```
  $ curl https://ets1gv8lxi.execute-api.us-west-2.amazonaws.com/Prod/hello/
  {"message": "hello world"}
  ```

## Etapa 5: Interaja com sua função no Nuvem AWS
<a name="serverless-getting-started-hello-world-remote-invoke"></a>

Nesta etapa, você usa o AWS SAMCLI para invocar sua função do Lambda no Nuvem AWS.

**Para invocar sua função do Lambda na nuvem**

1. Anote o `LogicalResourceId` das suas funções na etapa anterior. Deveria ser `HelloWorldFunction`.

1. Na sua linha de comando, no diretório do projeto `sam-app`, execute o seguinte:

   ```
   $ sam remote invoke HelloWorldFunction --stack-name sam-app
   ```

1. O AWS SAMCLI invoca sua função na nuvem e retorna uma resposta. Veja a seguir um exemplo de saída:

   ```
   $ sam remote invoke HelloWorldFunction --stack-name sam-app
   
   Invoking Lambda Function HelloWorldFunction                                       
   START RequestId: d5ef494b-5f45-4086-86fd-d7322fa1a1f9 Version: $LATEST
   END RequestId: d5ef494b-5f45-4086-86fd-d7322fa1a1f9
   REPORT RequestId: d5ef494b-5f45-4086-86fd-d7322fa1a1f9  Duration: 6.62 ms       Billed Duration: 7 ms     Memory Size: 128 MB     Max Memory Used: 67 MB  Init Duration: 164.06 ms
   {"statusCode":200,"body":"{\"message\":\"hello world\"}"}%
   ```

## Etapa 6: Modifique e sincronize seu aplicativo com o Nuvem AWS
<a name="serverless-getting-started-hello-world-sync"></a>

Nesta etapa, você usa o AWS SAMCLI **sam sync --watch** comando para sincronizar as alterações locais com Nuvem AWS o.

**Para usar o sam sync**

1. Na sua linha de comando, no diretório do projeto `sam-app`, execute o seguinte:

   ```
   $ sam sync --watch
   ```

1. O AWS SAMCLI solicita que você confirme que está sincronizando uma pilha de desenvolvimento. Como o **sam sync --watch** comando implanta automaticamente as alterações locais no Nuvem AWS em tempo real, nós o recomendamos somente para ambientes de desenvolvimento.

   O AWS SAMCLI executa uma implantação inicial antes de começar a monitorar as alterações locais. Veja a seguir um exemplo de saída:

   ```
   $ sam sync --watch
   The SAM CLI will use the AWS Lambda, Amazon API Gateway, and AWS StepFunctions APIs to upload your code without
   performing a CloudFormation deployment. This will cause drift in your CloudFormation stack.
   **The sync command should only be used against a development stack**.
   
   Confirm that you are synchronizing a development stack.
   
   Enter Y to proceed with the command, or enter N to cancel:
    [Y/n]: y
   Queued infra sync. Waiting for in progress code syncs to complete...
   Starting infra sync.
   Manifest is not changed for (HelloWorldFunction), running incremental build
   Building codeuri: /Users/.../Demo/sam-tutorial1/sam-app/hello_world runtime: python3.9 metadata: {} architecture: x86_64 functions: HelloWorldFunction
   Running PythonPipBuilder:CopySource
   
   Build Succeeded
   
   Successfully packaged artifacts and wrote output template to file /var/folders/45/5ct135bx3fn2551_ptl5g6_80000gr/T/tmpq3x9vh63.
   Execute the following command to deploy the packaged template
   sam deploy --template-file /var/folders/45/5ct135bx3fn2551_ptl5g6_80000gr/T/tmpq3x9vh63 --stack-name <YOUR STACK NAME>
   
   
       Deploying with following values
       ===============================
       Stack name                   : sam-app
       Region                       : us-west-2
       Disable rollback             : False
       Deployment s3 bucket         : aws-sam-cli-managed-default-samclisam-s3-demo-bucket-1a4x26zbcdkqr
       Capabilities                 : ["CAPABILITY_NAMED_IAM", "CAPABILITY_AUTO_EXPAND"]
       Parameter overrides          : {}
       Signing Profiles             : null
   
   Initiating deployment
   =====================
   
   
   2023-03-15 13:10:05 - Waiting for stack create/update to complete
   
   CloudFormation events from stack operations (refresh every 0.5 seconds)
   ---------------------------------------------------------------------------------------------------------------------------------------------
   ResourceStatus                      ResourceType                        LogicalResourceId                   ResourceStatusReason
   ---------------------------------------------------------------------------------------------------------------------------------------------
   UPDATE_IN_PROGRESS                  AWS::CloudFormation::Stack          sam-app                             Transformation succeeded
   CREATE_IN_PROGRESS                  AWS::CloudFormation::Stack          AwsSamAutoDependencyLayerNestedSt   -
                                                                           ack
   CREATE_IN_PROGRESS                  AWS::CloudFormation::Stack          AwsSamAutoDependencyLayerNestedSt   Resource creation Initiated
                                                                           ack
   CREATE_COMPLETE                     AWS::CloudFormation::Stack          AwsSamAutoDependencyLayerNestedSt   -
                                                                           ack
   UPDATE_IN_PROGRESS                  AWS::Lambda::Function               HelloWorldFunction                  -
   UPDATE_COMPLETE                     AWS::Lambda::Function               HelloWorldFunction                  -
   UPDATE_COMPLETE_CLEANUP_IN_PROGRE   AWS::CloudFormation::Stack          sam-app                             -
   SS
   UPDATE_COMPLETE                     AWS::CloudFormation::Stack          sam-app                             -
   ---------------------------------------------------------------------------------------------------------------------------------------------
   
   CloudFormation outputs from deployed stack
   ----------------------------------------------------------------------------------------------------------------------------------------------
   Outputs
   ----------------------------------------------------------------------------------------------------------------------------------------------
   Key                 HelloWorldFunctionIamRole
   Description         Implicit IAM Role created for Hello World function
   Value               arn:aws:iam::012345678910:role/sam-app-HelloWorldFunctionRole-15GLOUR9LMT1W
   
   Key                 HelloWorldApi
   Description         API Gateway endpoint URL for Prod stage for Hello World function
   Value               https://ets1gv8lxi.execute-api.us-west-2.amazonaws.com/Prod/hello/
   
   Key                 HelloWorldFunction
   Description         Hello World Lambda Function ARN
   Value               arn:aws:lambda:us-west-2:012345678910:function:sam-app-HelloWorldFunction-yQDNe17r9maD
   ----------------------------------------------------------------------------------------------------------------------------------------------
   
   
   Stack update succeeded. Sync infra completed.
   
   Infra sync completed.
   CodeTrigger not created as CodeUri or DefinitionUri is missing for ServerlessRestApi.
   ```

Depois, você modificará o código da função do Lambda. O AWS SAMCLI detectará automaticamente essa alteração e sincronizará seu aplicativo com Nuvem AWS o.

**Para modificar e sincronizar seu aplicativo**

1. No IDE de sua preferência, abra o arquivo `sam-app/hello_world/app.py`.

1. Altere o `message` e salve o arquivo. Este é um exemplo:

   ```
   import json
   ...
   def lambda_handler(event, context):
       ...
       return {
           "statusCode": 200,
           "body": json.dumps({
               "message": "hello everyone!",
               ...
           }),
       }
   ```

1. O AWS SAMCLI detecta sua alteração e sincroniza seu aplicativo com o. Nuvem AWS Veja a seguir um exemplo de saída:

   ```
   Syncing Lambda Function HelloWorldFunction...
   Manifest is not changed for (HelloWorldFunction), running incremental build
   Building codeuri: /Users/.../Demo/sam-tutorial1/sam-app/hello_world runtime: python3.9 metadata: {} architecture: x86_64 functions: HelloWorldFunction
   Running PythonPipBuilder:CopySource
   Finished syncing Lambda Function HelloWorldFunction.
   ```

1. Para verificar sua alteração, envie novamente uma solicitação GET para o endpoint da API.

   ```
   $ curl https://ets1gv8lxi.execute-api.us-west-2.amazonaws.com/Prod/hello/
   {"message": "hello everyone!"}
   ```

## Etapa 7: (opcional) Teste seu aplicativo localmente
<a name="serverless-getting-started-hello-world-test"></a>

**nota**  
Esta etapa é opcional.

**Importante**  
Esse comando requer o Docker na sua máquina local. Para usar o AWS SAM CLI para testes locais, você deve ter o Docker instalado e configurado. Para obter mais informações, consulte [Instalação do Docker](install-docker.md).

Nesta etapa, você usa o AWS SAMCLI **sam local** comando para testar seu aplicativo localmente. Para fazer isso, o AWS SAMCLI cria um ambiente local usando o Docker. Esse ambiente local emula o ambiente de execução baseado em nuvem da sua função do Lambda.

Você fará o seguinte:

1. Crie um ambiente local para sua função do Lambda e invoque-o.

1. Hospede o endpoint da sua API HTTP localmente e use-o para invocar sua função do Lambda.

**Para invocar a função do Lambda localmente**

1. Na sua linha de comando, no diretório do projeto `sam-app`, execute o seguinte:

   ```
   $ sam local invoke
   ```

1.  AWS SAMCLI Isso cria um contêiner Docker local e invoca sua função. Veja a seguir um exemplo de saída:

   ```
   $ sam local invoke
   Invoking app.lambda_handler (python3.9)
   Local image was not found.
   Removing rapid images for repo public.ecr.aws/sam/emulation-python3.9
   Building image.....................
   Using local image: public.ecr.aws/lambda/python:3.9-rapid-x86_64.
   
   Mounting /Users/.../Demo/sam-tutorial1/sam-app/.aws-sam/build/HelloWorldFunction as /var/task:ro,delegated inside runtime container
   START RequestId: b046db01-2a00-415d-af97-35f3a02e9eb6 Version: $LATEST
   END RequestId: b046db01-2a00-415d-af97-35f3a02e9eb6
   REPORT RequestId: b046db01-2a00-415d-af97-35f3a02e9eb6    Init Duration: 1.01 ms    Duration: 633.45 ms    Billed Duration: 634 ms    Memory Size: 128 MB    Max Memory Used: 128 MB
   {"statusCode": 200, "body": "{\"message\": \"hello world\"}"}
   ```

**Para hospedar sua API localmente**

1. Na sua linha de comando, no diretório do projeto `sam-app`, execute o seguinte:

   ```
   $ sam local start-api
   ```

1. O AWS SAMCLI cria um contêiner Docker local para sua função do Lambda e cria um servidor HTTP local para simular o endpoint da sua API. Veja a seguir um exemplo de saída:

   ```
   $ sam local start-api
   Initializing the lambda functions containers.
   Local image is up-to-date
   Using local image: public.ecr.aws/lambda/python:3.9-rapid-x86_64.
   
   Mounting /Users/.../Demo/sam-tutorial1/sam-app/.aws-sam/build/HelloWorldFunction as /var/task:ro,delegated inside runtime container
   Containers Initialization is done.
   Mounting HelloWorldFunction at http://127.0.0.1:3000/hello [GET]
   You can now browse to the above endpoints to invoke your functions. You do not need to restart/reload SAM CLI while working on your functions, changes will be reflected instantly/automatically. If you used sam build before running local commands, you will need to re-run sam build for the changes to be picked up. You only need to restart AWS SAM CLI if you update your AWS SAM template
   2023-03-15 14:25:21 WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
    * Running on http://127.0.0.1:3000
   2023-03-15 14:25:21 Press CTRL+C to quit
   ```

1. Usando seu navegador ou a linha de comando, envie uma solicitação GET para o endpoint da API local. Veja a seguir um exemplo usando o comando curl:

   ```
   $ curl http://127.0.0.1:3000/hello
   {"message": "hello world"}
   ```

## Etapa 8: Exclua seu aplicativo do Nuvem AWS
<a name="serverless-getting-started-hello-world-delete"></a>

Nesta etapa, você usa o AWS SAMCLI **sam delete** comando para excluir seu aplicativo do Nuvem AWS.

**Para excluir seu aplicativo do Nuvem AWS**

1. Na sua linha de comando, no diretório do projeto `sam-app`, execute o seguinte:

   ```
   $ sam delete
   ```

1. O AWS SAMCLI pedirá que você confirme. Em seguida, ele excluirá o bucket e a pilha do Amazon S3 do seu aplicativo. CloudFormation Veja a seguir um exemplo de saída:

   ```
   $ sam delete
       Are you sure you want to delete the stack sam-app in the region us-west-2 ? [y/N]: y
       Are you sure you want to delete the folder sam-app in S3 which contains the artifacts? [y/N]: y
       - Deleting S3 object with key c6ce8fa8b5a97dd022ecd006536eb5a4
       - Deleting S3 object with key 5d513a459d062d644f3b7dd0c8b56a2a.template
       - Deleting S3 object with key sam-app/2bebf67c79f6a743cc5312f6dfc1efee.template
       - Deleting S3 object with key sam-app/6b208d0e42ad15d1cee77d967834784b.template
       - Deleting S3 object with key sam-app/da3c598813f1c2151579b73ad788cac8
       - Deleting S3 object with key sam-app/f798cdd93cee188a71d120f14a035b11
       - Deleting Cloudformation stack sam-app
   
   Deleted successfully
   ```

## Solução de problemas
<a name="serverless-getting-started-hello-world-troubleshoot"></a>

Para solucionar o problema do AWS SAMCLI, consulte[AWS SAM CLI solução de problemas](sam-cli-troubleshooting.md).

## Saiba mais
<a name="serverless-getting-started-hello-world-learn"></a>

Para continuar aprendendo sobre isso AWS SAM, consulte os seguintes recursos:
+ **[O Workshop AWS SAM Completo](https://s12d.com/sam-ws-en-intro)** – Um workshop projetado para ensinar a você muitos dos principais atributos que AWS SAM oferece.
+ **[Sessões com o SAM](https://www.youtube.com/playlist?list=PLJo-rJlep0ED198FJnTzhIB5Aut_1vDAd)** — Série de vídeos criada por nossa equipe AWS Serverless Developer Advocate sobre o uso. AWS SAM
+ **[Serverless Land](https://serverlessland.com/)** — Site que reúne as informações mais recentes, blogs, vídeos, código e recursos de aprendizado para a tecnologia sem servidor AWS .

# Conversão de funções Lambda em aplicativos AWS SAM
<a name="convert-lambda-to-sam"></a>

Se você tiver uma função no console Lambda que deseja gerenciar no VS Code como infraestrutura como código (IaC), você pode transferi-la para o VS Code e depois convertê-la em um modelo. AWS SAM Com sua função convertida em um AWS SAM modelo, você pode controlar o controle de versão de sua infraestrutura, automatizar implantações, depurar funções remotamente e manter ambientes consistentes em todo o ciclo de vida de desenvolvimento. Com recursos de depuração local e remota, você também pode solucionar problemas com mais eficiência examinando seu código, inspecionando variáveis e definindo pontos de interrupção tanto localmente quanto na nuvem. AWS 

Para obter instruções sobre como mover suas funções do console e configurar o desenvolvimento local, consulte [Desenvolver funções do Lambda localmente com o VS Code](https://docs.aws.amazon.com/lambda/latest/dg/foundation-iac-local-development.html) no *Guia do Desenvolvedor do AWS Lambda *. Siga estas instruções para mover uma função Lambda do console para o VS Code e depois convertê-la em um AWS SAM modelo. Após fazer isso, é possível:
+ **Depure remotamente sua função na AWS nuvem.** Para obter detalhes, consulte [Depure remotamente as funções do Lambda com o Visual Studio Code](https://docs.aws.amazon.com/lambda/latest/dg/debugging.html) no *Guia do desenvolvedor do AWS Lambda *
+ **Gerenciar os recursos e permissões associados como infraestrutura como código.** Para obter mais detalhes, consulte [Usar o Lambda com a infraestrutura como código (IaC)](https://docs.aws.amazon.com/lambda/latest/dg/foundation-iac.html) no *Guia do desenvolvedor do AWS Lambda *
+ **Implante e atualize seu aplicativo usando AWS SAMCLI o.** Para obter detalhes, consulte [AWS SAM CLI](using-sam-cli.md).
+ **Projetar visualmente sua arquitetura com tecnologia sem servidor usando o Compositor de Infraestrutura.** Para obter mais detalhes, consulte o [Guia do desenvolvedor do Compositor de Infraestrutura](https://docs.aws.amazon.com/application-composer/latest/dg/what-is-composer.html).

## Saiba mais
<a name="convert-lambda-to-sam-learn"></a>

Para continuar aprendendo sobre isso AWS SAM, consulte os seguintes recursos:
+ **[O Workshop AWS SAM Completo](https://s12d.com/sam-ws-en-intro)** – Um workshop projetado para ensinar a você muitos dos principais atributos que AWS SAM oferece.
+ **[Sessões com o SAM](https://www.youtube.com/playlist?list=PLJo-rJlep0ED198FJnTzhIB5Aut_1vDAd)** — Série de vídeos criada por nossa equipe AWS Serverless Developer Advocate sobre o uso. AWS SAM
+ **[Serverless Land](https://serverlessland.com/)** — Site que reúne as informações mais recentes, blogs, vídeos, código e recursos de aprendizado para a tecnologia sem servidor AWS .