

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 solução de problemas
<a name="sam-cli-troubleshooting"></a>

Esta seção fornece detalhes sobre como solucionar mensagens de erro ao usar, instalar e gerenciar a interface de linha de AWS Serverless Application Model comando (AWS SAMCLI).

**Topics**
+ [

## Solução de problemas
](#install-sam-cli-troubleshooting)
+ [

## Mensagens de erro
](#sam-cli-troubleshoot-messages)
+ [

## Mensagens de aviso
](#sam-cli-troubleshoot-warning)

## Solução de problemas
<a name="install-sam-cli-troubleshooting"></a>

Para obter orientações sobre solução de problemas relacionadas a AWS SAMCLI, consulte[Solução de problemas de erros de instalação do](install-sam-cli.md#sam-cli-troubleshoot-install).

## Mensagens de erro
<a name="sam-cli-troubleshoot-messages"></a>

### Erro de curl: “curl: (6) Não foi possível resolver: ...”
<a name="sam-cli-troubleshoot-messages-curl"></a>

Ao tentar invocar o endpoint do API Gateway, você receberá o seguinte erro:

```
curl: (6) Could not resolve: endpointdomain (Domain name not found)
```

Isso significa que você tentou enviar uma solicitação para um domínio que não é válido. Isso pode acontecer se o aplicativo com tecnologia sem servidor falhar na implantação bem-sucedida ou se você tiver um erro de digitação no comando. **curl** Verifique se o aplicativo foi implantado com êxito usando o CloudFormation console ou o AWS CLI e verifique se o **curl** comando está correto.

### Erro: não é possível encontrar informações exatas do recurso com o nome da pilha fornecido
<a name="sam-cli-troubleshoot-messages-exact-resource"></a>

Ao executar o comando `sam remote invoke` em um aplicativo que contém um único recurso de função do Lambda, você vê o seguinte erro:

```
Error: Can't find exact resource information with given <stack-name>. Please provide full resource ARN or --stack-name to resolve the ambiguity.
```

**Possível causa: você não forneceu a opção `--stack-name`.**  
Se o ARN de uma função não for fornecido como argumento, o comando `sam remote invoke` exigirá que a opção `--stack-name` seja fornecida.

**Solução: forneça a opção `--stack-name`.**  
Veja um exemplo a seguir.  

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

Invoking Lambda Function HelloWorldFunction                                                                                                                                                                                                                     
START RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82 Version: $LATEST
END RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82
REPORT RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82  Duration: 11.31 ms      Billed Duration: 12 ms  Memory Size: 128 MB     Max Memory Used: 67 MB  Init Duration: 171.71 ms
{"statusCode":200,"body":"{\"message\":\"hello world\"}"}%
```

### Erro: não é possível encontrar informações do recurso com o nome da pilha
<a name="sam-cli-troubleshoot-messages-stack-name"></a>

Ao executar o comando `sam remote invoke` e passar o ARN de uma função do Lambda como argumento, você vê o seguinte erro:

```
Error: Can't find resource information from stack name (<stack-name>) and resource id (<function-id>)
```

**Possível causa: você tem o valor do nome da pilha definido em seu `samconfig.toml` arquivo.**  
A AWS SAMCLI primeiro verifica o nome da pilha em seu arquivo `samconfig.toml`. Se especificado, o argumento é passado como um valor lógico de ID.

**Solução: em vez disso, passe o ID lógico da função.**  
Você pode passar o ID lógico da função como argumento em vez do ARN da função.

**Solução: remova o valor do nome da pilha do seu arquivo de configuração.**  
Você pode remover o valor do nome da pilha do seu arquivo de configuração. Isso impede que o AWS SAMCLI transmita o ARN da função como um valor lógico de ID.  
Execute `sam build` depois de modificar seu arquivo de configuração.

### Erro: "Falha ao criar recursos gerenciados: não é possível localizar credenciais
<a name="sam-cli-troubleshoot-messages-credentials"></a>

Ao executar o comando **sam deploy**, você vê o seguinte erro:

```
Error: Failed to create managed resources: Unable to locate credentials
```

Isso significa que você não configurou AWS credenciais para permitir que o AWS SAMCLI faça chamadas AWS de serviço. Para corrigir isso, você deve configurar AWS as credenciais. Para obter mais informações, consulte [Configurando AWS credenciais](serverless-getting-started-set-up-credentials.md).

### Erro: FileNotFoundError no Windows
<a name="sam-cli-troubleshoot-messages-filenotfound-win"></a>

Ao executar comandos na CLI do AWS SAM no Windows, você pode ver o seguinte erro:

```
Error: FileNotFoundError
```

Possível causa: Eles AWS SAMCLI podem interagir com caminhos de arquivo que excedam o limite máximo de caminhos do Windows.

Solução: para solucionar esse problema, o novo comportamento de caminhos longos deverá ser habilitado. Para fazer isso, consulte [Habilitar caminhos longos no Windows 10, versão 1607 e posterior](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 para desenvolvimento de aplicações do Windows*.

### Erro: resolvedor de dependências do pip...
<a name="sam-cli-troubleshoot-messages-pip"></a>

*Exemplo de texto de erro:*

```
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. 
aws-sam-cli 1.58.0 requires aws-sam-translator==1.51.0, but you have aws-sam-translator 1.58.0 which is incompatible. 
aws-sam-cli 1.58.0 requires typing-extensions==3.10.0.0, but you have typing-extensions 4.4.0 which is incompatible.
```

**Possível causa: Se você usa pip para instalar pacotes, as dependências entre os pacotes podem entrar em conflito.**  
Cada versão do pacote `aws-sam-cli` depende de uma versão do pacote `aws-sam-translator`. Por exemplo, a v1.58.0 do `aws-sam-cli` pode depender da v1.51.0 do `aws-sam-translator`.  
Se você instalar o AWS SAMCLI usando pip, e, em seguida, instalar outro pacote que dependa de uma versão mais recente do `aws-sam-translator`, ocorrerá o seguinte:  
+ A versão mais recente do `aws-sam-translator` será instalada.
+ A versão atual do `aws-sam-cli` e a versão mais recente do `aws-sam-translator` podem não ser compatíveis.
+ Quando você usa o AWS SAMCLI, o erro do resolvedor de dependências ocorrerá.

**Soluções:**

1. Use o instalador de pacotes AWS SAMCLI nativo.

   1. Desinstalar a AWS SAM CLI usando pip. Para obter instruções, consulte [Desinstalando o AWS SAMCLI](manage-sam-cli-versions.md#manage-sam-cli-versions-uninstall).

   1. Instale o AWS SAMCLI usando o instalador de pacote nativo. Para obter instruções, consulte [Instale o AWS SAM CLI](install-sam-cli.md).

   1. Quando necessário, atualize o AWS SAMCLI usando o instalador de pacotes nativo. Para obter instruções, consulte [Atualizar o AWS SAM CLI](manage-sam-cli-versions.md#manage-sam-cli-versions-upgrade).

1. Se você precisar usar o pip, recomendamos que você instale a AWS SAM CLI em um ambiente virtual. Isso garante um ambiente de instalação limpo e um ambiente isolado caso ocorram erros. Para obter instruções, consulte [Instalar a AWS SAM CLI em um ambiente virtual usando o pip](manage-sam-cli-versions.md#manage-sam-cli-versions-install-virtual).

### Erro: Esse comando 'remoto' não existe
<a name="sam-cli-troubleshoot-messages-command-remote"></a>

Ao executar o comando `sam remote invoke`, você vê o seguinte erro:

```
$ sam remote invoke ...
2023-06-20 08:15:07 Command remote not available
Usage: sam [OPTIONS] COMMAND [ARGS]...
Try 'sam -h' for help.

Error: No such command 'remote'.
```

**Possível causa: Sua versão do AWS SAMCLI está desatualizada.**  
O AWS SAMCLI `sam remote invoke` comando foi lançado com a AWS SAMCLI versão 1.88.0. Você pode verificar sua versão executando o comando `sam --version`.

**Solução: atualize seu AWS SAMCLI para a versão mais recente.**  
Para obter instruções, consulte [Atualizar o AWS SAM CLI](manage-sam-cli-versions.md#manage-sam-cli-versions-upgrade).

### Erro: é necessário executar projetos AWS SAM localmenteDocker. Você o instalou?
<a name="sam-cli-troubleshoot-messages-docker"></a>

Ao executar o comando **sam local start-api**, você vê o seguinte erro:

```
Error: Running AWS SAM projects locally requires Docker. Have you got it installed?
```

Isso significa que você não instalou o Docker corretamente Docker é necessário testar seu aplicativo localmente. Para corrigir isso, siga as instruções para instalar o Docker para seu host de desenvolvimento. Para obter mais informações, consulte [Instalação do Docker](install-docker.md).

### Erro: restrições de segurança não satisfeitas
<a name="sam-cli-troubleshoot-messages-security-constraints"></a>

Ao executar o **sam deploy --guided**, você recebe a pergunta `Function may not have authorization defined, Is this okay? [y/N]`. Se responder a essa solicitação com **N** (a resposta padrão), você receberá o seguinte erro:

```
Error: Security Constraints Not Satisfied
```

O aviso está informando que o aplicativo que você está prestes a implantar pode ter uma API do Amazon API Gateway acessível ao público configurada sem autorização. Ao responder **N** a essa solicitação, você está dizendo que isso não está certo.

Para corrigir isso, você tem as seguintes opções:
+ Configurar seu aplicativo com autorização. Para obter informações sobre como configurar a autorização, consulte [Controle o acesso à API com seu AWS SAM modelo](serverless-controlling-access-to-apis.md).
+ Se sua intenção é ter um endpoint de API acessível ao público sem autorização, reinicie sua implantação e responda a essa pergunta com **Y** para indicar que você concorda com a implantação.

### mensagem: Token de autenticação ausente
<a name="sam-cli-troubleshoot-messages-auth-token"></a>

Ao tentar invocar o endpoint do API Gateway, você receberá o seguinte erro:

```
{"message":"Missing Authentication Token"}
```

Isso significa que você tentou enviar uma solicitação para o domínio correto, mas o URI não é reconhecível. Para corrigir isso, verifique o URL completo e atualize o comando **curl** com o URL correto.

## Mensagens de aviso
<a name="sam-cli-troubleshoot-warning"></a>

### Aviso:... AWS não manterá mais o Homebrew instalador por AWS SAM ...
<a name="sam-cli-troubleshoot-warning-homebrew"></a>

Ao instalar o AWS SAMCLI usando o Homebrew, você verá a seguinte mensagem de aviso:

```
Warning: ... AWS will no longer maintain the Homebrew installer for AWS SAM (aws/tap/aws-sam-cli). 
				For AWS supported installations, use the first party installers ...
```

**Causa potencial: AWS não manter mais o Homebrew suporte.**  
A partir de setembro de 2023, não AWS manterá mais o Homebrew instalador do AWS SAMCLI.  

**Solução: use um método de instalação AWS compatível.**
+ Você pode encontrar métodos de instalação AWS compatíveis em[Instale o AWS SAM CLI](install-sam-cli.md).

**Solução: para continuar usando o Homebrew, use o instalador gerenciado pela comunidade.**
+ Você pode usar o instalador gerenciado pela comunidade Homebrew a seu critério. Para obter instruções, consulte [Gerenciamento o AWS SAM CLI com o Homebrew](manage-sam-cli-versions.md#manage-sam-cli-versions-homebrew).