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

Solucione problemas com mensagens de erro ao usar, instalar e gerenciar a interface de linha de AWS Serverless Application Model comando (AWS SAMCLI).

Erros de instalação

Linux

Erro do Docker: “Não é possível conectar-se ao daemon do Docker. O daemon do docker está sendo executado neste host?”

Em alguns casos, para obter permissões para o ec2-user acessar o daemon do Docker, pode ser necessário reinicializar sua instância. Se você receber esse erro, tente reinicializar sua instância.

Erro de shell: “comando não encontrado”

Se você receber esse erro, seu shell não conseguirá localizar o AWS SAMCLI executável no caminho. Verifique a localização do diretório em que você instalou o AWS SAMCLI executável e, em seguida, verifique se o diretório está no seu caminho.

AWS SAMCLIerro: “/lib64/libc.so.6: versão `GLIBC_2.14' não encontrada (exigida por /usr/local/ /dist/libz.so.1)” aws-sam-cli

Se você receber esse erro, você está usando uma versão incompatível do Linux e a versão glibc integrada está desatualizada. Tente um dos seguintes:

  • Atualize seu host Linux para a versão de 64 bits de uma distribuição recente do CentOS, Fedora, Ubuntu ou Amazon Linux 2.

  • Siga as instruções para Instalando o AWS SAM CLI.

macOS

A instalação falhou

Imagem do instalador AWS SAMCLI mostrando uma mensagem de falha na instalação

Se você estiver instalando o AWS SAMCLI para seu usuário e selecionou um diretório de instalação para o qual não tem permissões de escrita, esse erro pode ocorrer. Tente um dos seguintes:

  1. Selecione um diretório de instalação diferente para o qual você tenha permissões de escrita.

  2. Exclua o instalador. Em seguida, faça o download e execute-o novamente.

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 AWS CloudFormation console ou o AWS CLIe 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 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 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

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 Instalando 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 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 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 projetos AWS SAM 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 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 às APIs do API Gateway.

  • 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

Advertência:... 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.