

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

# AWS SAM CLI
<a name="using-sam-cli"></a>

AWS Serverless Application Model A interface de linha de comando (AWS SAMCLI) é uma ferramenta de linha de comando para desenvolvimento local e teste de aplicativos sem servidor. AWS SAMCLIIsso permite que você crie, transforme, implante, depure, empacote, inicialize e sincronize seus aplicativos sem servidor localmente antes de implantá-los na nuvem.

A CLI do AWS SAM funciona com aplicações com tecnologia sem servidor que são definidos usando diferentes estruturas e ferramentas de infraestrutura como código (IaC), com vários níveis de suporte:
+ **AWS SAM modelos** — fornece suporte nativo com o conjunto completo de recursos, incluindo recursos locais de teste, depuração, empacotamento e implantação.
+ **AWS Aplicativos CDK** — Suporta testes locais de funções Lambda depois de sintetizar AWS o aplicativo CDK em modelos usando o comando cdk CloudFormation synth.
+ **CloudFormation modelos** — Oferece compatibilidade direta porque AWS SAM se estende CloudFormation, oferecendo suporte a recursos sem servidor definidos em modelos padrão CloudFormation .
+ **Aplicações do Terraform**: fornece suporte limitado para criação e testes locais de funções do Lambda. Exige que você gere artefatos AWS SAM de modelo que representem suas funções Lambda definidas pelo Terraform.

Para obter o suporte de recursos mais abrangente e a experiência simplificada do desenvolvedor, recomendamos o uso de AWS SAM modelos nativos.

**Topics**
+ [Como os comandos AWS SAMCLI são documentados](#using-sam-cli-documentation)
+ [Configurando o AWS SAM CLI](using-sam-cli-configure.md)
+ [Comandos principais da CLI do AWS SAM](using-sam-cli-corecommands.md)
+ [Teste local com a CLI do AWS SAM](using-sam-cli-local-testing.md)

## Como os comandos AWS SAMCLI são documentados
<a name="using-sam-cli-documentation"></a>

Os comandos AWS SAMCLI são documentados usando o seguinte formato:
+ **Prompt** — O prompt Linux é documentado por padrão e exibida como (`$ `). Para comandos específicos do Windows, o (`> `) é usado como prompt. Não inclua prompt quando você digitar comandos.
+ **Diretório**: quando comandos devem ser executados de um diretório específico, o nome do diretório é mostrado antes do símbolo do prompt.
+ **Entrada do usuário** o texto do comando inserido na linha de comando é formatado como **user input**.
+ **Texto substituível** — O texto variável, como nomes de arquivos e parâmetros, é formatado como. {{replaceable text}} Em comandos ou comandos de várias linhas, em que é necessária uma entrada específica do teclado, a entrada do teclado também pode ser exibida como texto substituível. Por exemplo, .{{ENTER}}
+ **Saída** — A saída retornada como resposta ao comando é formatada como `computer output`.

O comando `sam deploy` e a saída a seguir são um exemplo:

```
$ sam deploy --guided --template {{template.yaml}}

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]: {{ENTER}}
    #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. `sam deploy --guided --template template.yaml` é o comando que você insere na linha de comando.

1. **sam deploy --guided --template** deve ser fornecido como está.

1. {{template.yaml}}pode ser substituído pelo nome de seu arquivo específico.

1. A saída começa em `Configuring SAM deploy`.

1. Na saída, {{y}} indique {{ENTER}} os valores substituíveis que você fornece.