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 mensagens de erro ao usar, instalar e gerenciar a interface de linha de AWS Serverless Application Model comando (AWS SAMCLI).

Solução de problemas

Para obter orientações sobre solução de problemas relacionadas a AWS SAMCLI, consulteSoluçã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ê vê 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 AWS 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

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 uma função não ARN for fornecida como argumento, o sam remote invoke comando exigirá que a --stack-name opção 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 sam remote invoke comando e passar uma função Lambda ARN 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 da funçãoARN.

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 sua função ARN 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 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 ter mais informações, consulte Configurar credenciais da AWS.

Erro: FileNotFoundError no Windows

Ao executar comandos AWS SAMCLI 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 resolver esse problema, o novo comportamento de caminhos longos deve estar ativado. Para fazer isso, consulte Habilitar caminhos longos no Windows 10, versão 1607 e posterior na documentação de desenvolvimento de aplicativos do Microsoft 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 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.

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

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

  2. Se você precisar usarpip, recomendamos que você instale o 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 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.

Erro: é necessário executar AWS SAM projetos localmenteDocker. 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 um Amazon API Gateway acessível ao público API configurado 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 API o acesso com seu AWS SAM modelo.

  • Se sua intenção é ter um API endpoint acessível ao público sem autorização, reinicie sua implantação e responda a essa pergunta 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ê vê o seguinte erro:

{"message":"Missing Authentication Token"}

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

Mensagens de aviso

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

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.
Solução: para continuar usando o Homebrew, use o instalador gerenciado pela comunidade.