AWS SAM CLI solução de problemas - AWS Serverless Application Model

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

Esta seção fornece detalhes sobre como solucionar problemas de mensagens de erro no uso, na instalação e no gerenciamento da interface de linha de comando do AWS Serverless Application Model (CLI do AWS SAM).

Solução de problemas

Para obter orientações sobre a solução de problemas relacionados à CLI do AWS SAM, consulte Solução de problemas de erros de instalação do .

Mensagens de erro

Erro de curl: “curl: (6) Não foi possível resolver: ...”

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 console AWS CloudFormation ou o AWS CLI e verifique se o comando curl está correto.

Erro: não é possível encontrar informações exatas do recurso com o nome da pilha fornecido

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

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 SAM CLI 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 SAM CLI 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

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 credenciais da AWS para permitir que a AWS SAM CLI faça AWS chamadas de serviço. Para corrigir isso, é necessário configurar credenciais AWS. Para ter mais informações, consulte Configurar credenciais da AWS.

Erro: FileNotFoundError in Windows

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

Error: FileNotFoundError

Possível causa: a CLI do AWS SAM pode interagir com caminhos de arquivo que excedem a limitação máxima 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 na Documentação para desenvolvimento de aplicações do Windows.

Erro: resolvedor de dependências do pip...

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 SAM CLI 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 SAM CLI, o erro do resolvedor de dependências ocorrerá.

Soluções:
  1. Use o instalador de pacotes AWS SAM CLI nativo.

    1. Desinstalar a AWS SAM CLI usando pip. Para obter instruções, consulte Desinstalando o AWS SAMCLI.

    2. Instale o AWS SAM CLI usando o instalador de pacote nativo. Para obter instruções, consulte Instale o AWS SAM CLI.

    3. Quando necessário, atualize o AWS SAM CLI usando o instalador de pacotes nativo. Para obter instruções, consulte Atualizar o AWS SAM CLI.

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

Erro: Esse comando 'remoto' não existe

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 SAM CLI está desatualizada.

O comando AWS SAM CLI sam remote invoke foi lançado com a versão 1.88.0 do AWS SAM CLI. Você pode verificar sua versão executando o comando sam --version.

Solução: atualize seu AWS SAM CLI para a versão mais recente.

Para obter instruções, consulte Atualizar o AWS SAM CLI.

Erro: Executar projetos AWS SAM localmente requer Docker. Você o instalou?

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.

Erro: restrições de segurança não satisfeitas

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 Controlar o acesso à API com o modelo do AWS SAM.

  • 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

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

Aviso:... O AWS não manterá mais o instalador Homebrew para AWS SAM...

Ao instalar o AWS SAM CLI 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 ...
Possível causa: O AWS não mantém mais o suporte Homebrew.

A partir de setembro de 2023, o AWS não manterá mais o instalador Homebrew para o AWS SAM CLI.

Solução: use um método de instalação compatível AWS.
Solução: para continuar usando o Homebrew, use o instalador gerenciado pela comunidade.