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
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\"}"}%sam-app
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
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 pacoteaws-sam-translator
. Por exemplo, a v1.58.0 doaws-sam-cli
pode depender da v1.51.0 doaws-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 doaws-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:
-
Use o instalador de pacotes AWS SAM CLI nativo.
-
Desinstalar a AWS SAM CLI usando pip. Para obter instruções, consulte Desinstalando o AWS SAMCLI.
-
Instale o AWS SAM CLI usando o instalador de pacote nativo. Para obter instruções, consulte Instale o AWS SAM CLI.
-
Quando necessário, atualize o AWS SAM CLI usando o instalador de pacotes nativo. Para obter instruções, consulte Atualizar o AWS SAM CLI.
-
-
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 comandosam --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
. Se responder a essa solicitação com Function
may not have authorization defined, Is this
okay? [y/N]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.
-
Você pode encontrar métodos de instalação compatíveis AWS em Instale o AWS SAM CLI.
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.
-