Solucionar problemas de erros AWS CLI - AWS Command Line Interface

Esta documentação é para a AWS CLI única versão 1. Para obter a documentação relacionada à versão 2 do AWS CLI, consulte o Guia do usuário da versão 2.

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

Solucionar problemas de erros AWS CLI

Esta seção aborda erros comuns e os passos para a solução de problemas a serem seguidas para resolver o problema. Sugerimos seguir a Solução geral de problemas primeiro.

Solução geral de problemas para tentar primeiro

Se você receber um erro ou encontrar um problema com o AWS CLI, sugerimos as dicas gerais a seguir para ajudá-lo a solucionar o problema.

Voltar ao início

Verifique a formatação AWS CLI do seu comando

Se você receber um erro indicando que um comando não existe ou que ele não reconhece um parâmetro que a documentação indica estar disponível, é provável que o comando esteja formatado incorretamente. Sugerimos verificar o seguinte:

Para obter mais informações sobre como um comando específico deve ser estruturado, consulte o guia de AWS CLI referência da AWS CLI versão 2 do guia .

Voltar ao início

Verifique o que Região da AWS seu AWS CLI comando está usando

nota

Você deve especificar um Região da AWS ao usar o AWS CLI, explicitamente ou definindo uma região padrão. Para obter uma lista de tudo o Regiões da AWS que você pode especificar, consulte AWS Regiões e endpoints no Referência geral da Amazon Web Services. Os Região da AWS designadores usados pelo AWS CLI são os mesmos nomes que você vê em AWS Management Console URLs e endpoints de serviço.

Erros ou resultados inesperados podem ocorrer se um AWS service (Serviço da AWS) não estiver disponível para o especificado Região da AWS ou se seus recursos estiverem localizados em um local diferente Região da AWS. Em ordem de precedência, o Região da AWS é definido das seguintes maneiras:

Confirme se você está usando o correto Região da AWS para seus recursos.

Voltar ao início

Confirme se você está executando uma versão recente da AWS CLI

Se você receber um erro indicando que um comando não existe ou que ele não reconhece um parâmetro que o guia de AWS CLI referência da AWS CLI versão 2 do guia diz estar disponível, primeiro confirme se o comando está formatado corretamente. Se a formatação estiver correta, recomendamos atualizar para a versão mais recente da AWS CLI. Versões atualizadas do AWS CLI são lançadas quase todos os dias úteis. Novos AWS serviços, recursos e parâmetros são introduzidos nessas novas versões do AWS CLI. A única maneira de obter acesso a esses novos serviços, recursos ou parâmetros é atualizar para uma versão que foi lançada depois que esse elemento foi apresentado pela primeira vez.

A forma como você atualiza sua versão do AWS CLI depende de como você a instalou originalmente, conforme descrito em Instalar, atualizar e desinstalar a AWS CLI.

Se você tiver usado um dos instaladores empacotados, talvez precise remover a instalação existente antes de baixar e instalar a versão mais recente para seu sistema operacional.

Voltar ao início

Como usar a opção --debug

Quando ele AWS CLI relata um erro que você não entende imediatamente ou produz resultados inesperados, você pode obter mais detalhes sobre o erro executando o comando novamente com a --debug opção. Com esta opção, a AWS CLI gera detalhes sobre cada passo necessário para processar seu comando. Os detalhes na saída podem ajudar a determinar quando o erro ocorreu e fornecem dicas sobre o que o acionou o erro.

É possível enviar a saída para um arquivo de texto para análise posterior ou enviá-lo para AWS Support quando solicitado.

Quando você inclui a opção --debug, os detalhes incluem:

  • Procurar credenciais

  • Analisar os parâmetros fornecidos

  • Construindo a solicitação enviada aos servidores AWS

  • O conteúdo da solicitação enviada para AWS

  • O conteúdo da resposta não formatada

  • A saída formatada

Veja a seguir um exemplo de um comando executado com e sem a opção --debug.

$ aws iam list-groups --profile MyTestProfile { "Groups": [ { "Path": "/", "GroupName": "MyTestGroup", "GroupId": "AGPA0123456789EXAMPLE", "Arn": "arn:aws:iam::123456789012:group/MyTestGroup", "CreateDate": "2019-08-12T19:34:04Z" } ] }
$ aws iam list-groups --profile MyTestProfile --debug 2019-08-12 12:36:18,305 - MainThread - awscli.clidriver - DEBUG - CLI version: aws-cli/1.16.215 Python/3.7.3 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.12.205 2019-08-12 12:36:18,305 - MainThread - awscli.clidriver - DEBUG - Arguments entered to CLI: ['iam', 'list-groups', '--debug'] 2019-08-12 12:36:18,305 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function add_scalar_parsers at 0x7fdf173161e0> 2019-08-12 12:36:18,305 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function register_uri_param_handler at 0x7fdf17dec400> 2019-08-12 12:36:18,305 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function inject_assume_role_provider_cache at 0x7fdf17da9378> 2019-08-12 12:36:18,307 - MainThread - botocore.credentials - DEBUG - Skipping environment variable credential check because profile name was explicitly set. 2019-08-12 12:36:18,307 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function attach_history_handler at 0x7fdf173ed9d8> 2019-08-12 12:36:18,308 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/iam/2010-05-08/service-2.json 2019-08-12 12:36:18,317 - MainThread - botocore.hooks - DEBUG - Event building-command-table.iam: calling handler <function add_waiters at 0x7fdf1731a840> 2019-08-12 12:36:18,320 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/iam/2010-05-08/waiters-2.json 2019-08-12 12:36:18,321 - MainThread - awscli.clidriver - DEBUG - OrderedDict([('path-prefix', <awscli.arguments.CLIArgument object at 0x7fdf171ac780>), ('marker', <awscli.arguments.CLIArgument object at 0x7fdf171b09e8>), ('max-items', <awscli.arguments.CLIArgument object at 0x7fdf171b09b0>)]) 2019-08-12 12:36:18,322 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.iam.list-groups: calling handler <function add_streaming_output_arg at 0x7fdf17316510> 2019-08-12 12:36:18,322 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.iam.list-groups: calling handler <function add_cli_input_json at 0x7fdf17da9d90> 2019-08-12 12:36:18,322 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.iam.list-groups: calling handler <function unify_paging_params at 0x7fdf17328048> 2019-08-12 12:36:18,326 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/iam/2010-05-08/paginators-1.json 2019-08-12 12:36:18,326 - MainThread - awscli.customizations.paginate - DEBUG - Modifying paging parameters for operation: ListGroups 2019-08-12 12:36:18,326 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.iam.list-groups: calling handler <function add_generate_skeleton at 0x7fdf1737eae8> 2019-08-12 12:36:18,326 - MainThread - botocore.hooks - DEBUG - Event before-building-argument-table-parser.iam.list-groups: calling handler <bound method OverrideRequiredArgsArgument.override_required_args of <awscli.customizations.cliinputjson.CliInputJSONArgument object at 0x7fdf171b0a58>> 2019-08-12 12:36:18,327 - MainThread - botocore.hooks - DEBUG - Event before-building-argument-table-parser.iam.list-groups: calling handler <bound method GenerateCliSkeletonArgument.override_required_args of <awscli.customizations.generatecliskeleton.GenerateCliSkeletonArgument object at 0x7fdf171c5978>> 2019-08-12 12:36:18,327 - MainThread - botocore.hooks - DEBUG - Event operation-args-parsed.iam.list-groups: calling handler functools.partial(<function check_should_enable_pagination at 0x7fdf17328158>, ['marker', 'max-items'], {'max-items': <awscli.arguments.CLIArgument object at 0x7fdf171b09b0>}, OrderedDict([('path-prefix', <awscli.arguments.CLIArgument object at 0x7fdf171ac780>), ('marker', <awscli.arguments.CLIArgument object at 0x7fdf171b09e8>), ('max-items', <awscli.customizations.paginate.PageArgument object at 0x7fdf171c58d0>), ('cli-input-json', <awscli.customizations.cliinputjson.CliInputJSONArgument object at 0x7fdf171b0a58>), ('starting-token', <awscli.customizations.paginate.PageArgument object at 0x7fdf171b0a20>), ('page-size', <awscli.customizations.paginate.PageArgument object at 0x7fdf171c5828>), ('generate-cli-skeleton', <awscli.customizations.generatecliskeleton.GenerateCliSkeletonArgument object at 0x7fdf171c5978>)])) 2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.path-prefix: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978> 2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.marker: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978> 2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.max-items: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978> 2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.cli-input-json: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978> 2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.starting-token: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978> 2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.page-size: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978> 2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.generate-cli-skeleton: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978> 2019-08-12 12:36:18,329 - MainThread - botocore.hooks - DEBUG - Event calling-command.iam.list-groups: calling handler <bound method CliInputJSONArgument.add_to_call_parameters of <awscli.customizations.cliinputjson.CliInputJSONArgument object at 0x7fdf171b0a58>> 2019-08-12 12:36:18,329 - MainThread - botocore.hooks - DEBUG - Event calling-command.iam.list-groups: calling handler <bound method GenerateCliSkeletonArgument.generate_json_skeleton of <awscli.customizations.generatecliskeleton.GenerateCliSkeletonArgument object at 0x7fdf171c5978>> 2019-08-12 12:36:18,329 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: assume-role 2019-08-12 12:36:18,329 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: assume-role-with-web-identity 2019-08-12 12:36:18,329 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: shared-credentials-file 2019-08-12 12:36:18,329 - MainThread - botocore.credentials - INFO - Found credentials in shared credentials file: ~/.aws/credentials 2019-08-12 12:36:18,330 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/endpoints.json 2019-08-12 12:36:18,334 - MainThread - botocore.hooks - DEBUG - Event choose-service-name: calling handler <function handle_service_name_alias at 0x7fdf1898eb70> 2019-08-12 12:36:18,337 - MainThread - botocore.hooks - DEBUG - Event creating-client-class.iam: calling handler <function add_generate_presigned_url at 0x7fdf18a028c8> 2019-08-12 12:36:18,337 - MainThread - botocore.regions - DEBUG - Using partition endpoint for iam, us-west-2: aws-global 2019-08-12 12:36:18,337 - MainThread - botocore.args - DEBUG - The s3 config key is not a dictionary type, ignoring its value of: None 2019-08-12 12:36:18,340 - MainThread - botocore.endpoint - DEBUG - Setting iam timeout as (60, 60) 2019-08-12 12:36:18,341 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/_retry.json 2019-08-12 12:36:18,341 - MainThread - botocore.client - DEBUG - Registering retry handlers for service: iam 2019-08-12 12:36:18,342 - MainThread - botocore.hooks - DEBUG - Event before-parameter-build.iam.ListGroups: calling handler <function generate_idempotent_uuid at 0x7fdf189b10d0> 2019-08-12 12:36:18,342 - MainThread - botocore.hooks - DEBUG - Event before-call.iam.ListGroups: calling handler <function inject_api_version_header_if_needed at 0x7fdf189b2a60> 2019-08-12 12:36:18,343 - MainThread - botocore.endpoint - DEBUG - Making request for OperationModel(name=ListGroups) with params: {'url_path': '/', 'query_string': '', 'method': 'POST', 'headers': {'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8', 'User-Agent': 'aws-cli/1.16.215 Python/3.7.3 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.12.205'}, 'body': {'Action': 'ListGroups', 'Version': '2010-05-08'}, 'url': 'https://iam.amazonaws.com/', 'context': {'client_region': 'aws-global', 'client_config': <botocore.config.Config object at 0x7fdf16e9a4a8>, 'has_streaming_input': False, 'auth_type': None}} 2019-08-12 12:36:18,343 - MainThread - botocore.hooks - DEBUG - Event request-created.iam.ListGroups: calling handler <bound method RequestSigner.handler of <botocore.signers.RequestSigner object at 0x7fdf16e9a470>> 2019-08-12 12:36:18,343 - MainThread - botocore.hooks - DEBUG - Event choose-signer.iam.ListGroups: calling handler <function set_operation_specific_signer at 0x7fdf18996f28> 2019-08-12 12:36:18,343 - MainThread - botocore.auth - DEBUG - Calculating signature using v4 auth. 2019-08-12 12:36:18,343 - MainThread - botocore.auth - DEBUG - CanonicalRequest: POST / content-type:application/x-www-form-urlencoded; charset=utf-8 host:iam.amazonaws.com x-amz-date:20190812T193618Z content-type;host;x-amz-date 5f776d91EXAMPLE9b8cb5eb5d6d4a787a33ae41c8cd6eEXAMPLEca69080e1e1f 2019-08-12 12:36:18,344 - MainThread - botocore.auth - DEBUG - StringToSign: AWS4-HMAC-SHA256 20190812T193618Z 20190812/us-east-1/iam/aws4_request ab7e367eEXAMPLE2769f178ea509978cf8bfa054874b3EXAMPLE8d043fab6cc9 2019-08-12 12:36:18,344 - MainThread - botocore.auth - DEBUG - Signature: d85a0EXAMPLEb40164f2f539cdc76d4f294fe822EXAMPLE18ad1ddf58a1a3ce7 2019-08-12 12:36:18,344 - MainThread - botocore.endpoint - DEBUG - Sending http request: <AWSPreparedRequest stream_output=False, method=POST, url=https://iam.amazonaws.com/, headers={'Content-Type': b'application/x-www-form-urlencoded; charset=utf-8', 'User-Agent': b'aws-cli/1.16.215 Python/3.7.3 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.12.205', 'X-Amz-Date': b'20190812T193618Z', 'Authorization': b'AWS4-HMAC-SHA256 Credential=AKIA01234567890EXAMPLE-east-1/iam/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=d85a07692aceb401EXAMPLEa1b18ad1ddf58a1a3ce7EXAMPLE', 'Content-Length': '36'}> 2019-08-12 12:36:18,344 - MainThread - urllib3.util.retry - DEBUG - Converted retries value: False -> Retry(total=False, connect=None, read=None, redirect=0, status=None) 2019-08-12 12:36:18,344 - MainThread - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): iam.amazonaws.com:443 2019-08-12 12:36:18,664 - MainThread - urllib3.connectionpool - DEBUG - https://iam.amazonaws.com:443 "POST / HTTP/1.1" 200 570 2019-08-12 12:36:18,664 - MainThread - botocore.parsers - DEBUG - Response headers: {'x-amzn-RequestId': '74c11606-bd38-11e9-9c82-559da0adb349', 'Content-Type': 'text/xml', 'Content-Length': '570', 'Date': 'Mon, 12 Aug 2019 19:36:18 GMT'} 2019-08-12 12:36:18,664 - MainThread - botocore.parsers - DEBUG - Response body: b'<ListGroupsResponse xmlns="https://iam.amazonaws.com/doc/2010-05-08/">\n <ListGroupsResult>\n <IsTruncated>false</IsTruncated>\n <Groups>\n <member>\n <Path>/</Path>\n <GroupName>MyTestGroup</GroupName>\n <Arn>arn:aws:iam::123456789012:group/MyTestGroup</Arn>\n <GroupId>AGPA1234567890EXAMPLE</GroupId>\n <CreateDate>2019-08-12T19:34:04Z</CreateDate>\n </member>\n </Groups>\n </ListGroupsResult>\n <ResponseMetadata>\n <RequestId>74c11606-bd38-11e9-9c82-559da0adb349</RequestId>\n </ResponseMetadata>\n</ListGroupsResponse>\n' 2019-08-12 12:36:18,665 - MainThread - botocore.hooks - DEBUG - Event needs-retry.iam.ListGroups: calling handler <botocore.retryhandler.RetryHandler object at 0x7fdf16e9a780> 2019-08-12 12:36:18,665 - MainThread - botocore.retryhandler - DEBUG - No retry needed. 2019-08-12 12:36:18,665 - MainThread - botocore.hooks - DEBUG - Event after-call.iam.ListGroups: calling handler <function json_decode_policies at 0x7fdf189b1d90> { "Groups": [ { "Path": "/", "GroupName": "MyTestGroup", "GroupId": "AGPA123456789012EXAMPLE", "Arn": "arn:aws:iam::123456789012:group/MyTestGroup", "CreateDate": "2019-08-12T19:34:04Z" } ] }

Voltar ao início

Ative e revise os registros do histórico de AWS CLI comandos

Você pode ativar os registros do histórico de AWS CLI comandos usando a configuração cli_history do arquivo. Depois de ativar essa configuração, ele AWS CLI registra o histórico dos aws comandos.

Você pode listar seu histórico usando o comando aws history list e usar os command_ids resultantes no comando aws history show para obter detalhes. Para obter mais informações, consulte aws history no guia de referência da AWS CLI .

Quando você inclui a opção --debug, os detalhes incluem:

  • Chamadas de API feitas para o botocore

  • Códigos de status

  • Respostas HTTP

  • Cabeçalhos

  • Códigos de retorno

Você pode usar essas informações para confirmar que os dados do parâmetro e as chamadas de API estão se comportando da maneira esperada e deduzir em que etapa do processo seu comando está falhando.

Voltar ao início

Confirme se o seu AWS CLI está configurado

Vários erros podem ocorrer se os arquivos config e credentials ou o perfil ou usuário do IAM não estiverem configurados corretamente. Para obter mais informações sobre como resolver erros nos arquivos config e credentials ou no seu usuário ou perfis do IAM, consulte Erros de acesso negado e Credenciais inválidas e erros de chave.

Voltar ao início

Erros de comando não encontrado

Esse erro significa que o sistema operacional não consegue encontrar o AWS CLI comando. A instalação pode estar incompleta ou exigir atualização.

Possível causa: você está tentando usar um AWS CLI recurso mais recente do que a versão instalada ou tem uma formatação incorreta

Exemplo de texto de erro:

$ aws s3 copy usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters] To see help text, you can run: aws help aws <command> help aws <command> <subcommand> help aws: error: argument subcommand: Invalid choice, valid choices are: ls | website cp | mv ....

Vários erros podem ocorrer se o comando estiver formatado incorretamente ou se você estiver usando uma versão anterior ao lançamento do recurso. Para obter mais informações sobre a solução de erros em torno desses dois problemas, consulte Verifique a formatação AWS CLI do seu comando e Confirme se você está executando uma versão recente da AWS CLI.

Voltar ao início

Causa possível: o terminal precisa ser reiniciado após a instalação

Exemplo de texto de erro:

$ aws --version command not found: aws

Se o aws comando não puder ser encontrado após a primeira instalação ou atualização do AWS CLI, talvez seja necessário reiniciar o terminal para que ele reconheça PATH as atualizações.

Voltar ao início

Possível causa: AWS CLI Não foi totalmente instalado

Exemplo de texto de erro:

$ aws --version command not found: aws

Se o aws comando não puder ser encontrado após a primeira instalação ou atualização do AWS CLI, talvez ele não tenha sido totalmente instalado. Tente reinstalar seguindo os passos da sua plataforma em Instalar, atualizar e desinstalar a AWS CLI.

Voltar ao início

Possível causa: AWS CLI Não tem permissões (Linux)

Se o aws comando não puder ser encontrado após a primeira instalação ou atualização do AWS CLI no Linux, talvez ele não tenha execute permissões para a pasta em que foi instalado. Execute o seguinte comando com o PATH para sua AWS CLI instalação, para fornecer chmod permissões para AWS CLI:

$ sudo chmod -R 755 /usr/local/aws-cli/

Voltar ao início

Causa possível: o PATH do sistema operacional não foi atualizado durante a instalação.

Exemplo de texto de erro:

$ aws --version command not found: aws

Talvez seja necessário adicionar o executável aws à variável de ambiente PATH do sistema operacional. Para adicionar o AWS CLI ao seuPATH, use as instruções a seguir para o seu sistema operacional.

Linux and macOS
  1. Encontre o script de perfil do shell no diretório de usuário. Se não tiver certeza de qual shell você tem, execute echo $SHELL.

    $ ls -a ~ . .. .bash_logout .bash_profile .bashrc Desktop Documents Downloads
    • Bash.bash_profile, .profile, ou .bash_login

    • Zsh.zshrc

    • Tcsh.tcshrc, .cshrc, ou .login

  2. Adicione um comando de exportação ao script de perfil. O comando a seguir adiciona seu compartimento local à variável PATH atual.

    export PATH=/usr/local/bin:$PATH
  3. Recarregue o perfil atualizado em sua sessão atual.

    $ source ~/.bash_profile
Windows
  1. Em um prompt de comando do Windows, use o comando where com o parâmetro /R path para encontrar o local do arquivo aws. Os resultados retornam todas as pastas que contêm aws.

    C:\> where /R c:\ aws c:\Program Files\Amazon\AWSCLIV2\aws.exe ...

    Por padrão, a AWS CLI versão 2 está localizada em:

    c:\Program Files\Amazon\AWSCLIV2\aws.exe
  2. Pressione a tecla Windows e digite environment variables.

  3. Na lista de sugestões, escolha Edit environment variables for your account (Editar variáveis de ambiente para sua conta).

  4. Selecione PATH e, em seguida, Edit (Editar).

  5. Adicione o caminho encontrado no campo Variable value (Valor da variável). Por exemplo, C:\Program Files\Amazon\AWSCLIV2\aws.exe.

  6. Escolha OK duas vezes para aplicar as novas configurações.

  7. Feche todos os prompts de comando em execução e abra novamente a janela do prompt de comando.

Voltar ao início

O comando “aws --version” retorna uma versão diferente da que você instalou

Seu terminal pode estar retornando um valor diferente PATH do AWS CLI que você espera.

Causa possível: o terminal precisa ser reiniciado após a instalação

Se o comando aws mostrar a versão errada, talvez seja necessário reiniciar o terminal para que ele reconheça todas as atualizações de PATH. Todos os terminais abertos precisam estar fechados, não apenas o terminal ativo.

Voltar ao início

Causa possível: o sistema precisa ser reiniciado após a instalação

Se o comando aws mostrar a versão errada e reiniciar o terminal não funcionar, talvez seja necessário reiniciar o sistema para que ele reconheça as atualizações de PATH.

Voltar ao início

Possível causa: você tem várias versões do AWS CLI

Se você atualizou AWS CLI e usou um método de instalação diferente da instalação preexistente, isso pode fazer com que várias versões sejam instaladas. Por exemplo, se no Linux ou no macOS você usou pip para a instalação atual, mas tentou atualizar usando o arquivo de instalação .pkg, isso poderá causar alguns conflitos, especialmente com o PATH apontando para a versão antiga.

Para resolver isso, desinstale todas as versões da AWS CLI e execute uma instalação limpa.

Depois de desinstalar todas as versões, siga as instruções apropriadas do seu sistema operacional para instalar a versão desejada da AWS CLI versão 1 ou da AWS CLI versão 2.

nota

Se isso acontecer depois de instalar a AWS CLI versão 2 com uma instalação preexistente da AWS CLI versão 1, siga as instruções de migração em Instruções de instalação ao migrar da AWS CLI versão 1.

Voltar ao início

O comando "aws --version" retorna uma versão após a desinstalação do AWS CLI

Isso geralmente ocorre quando ainda há um AWS CLI instalado em algum lugar do seu sistema.

Causa possível: o terminal precisa ser reiniciado após a instalação

Se o comando aws --version mostrar a versão errada, talvez seja necessário reiniciar o terminal para que ele reconheça todas as atualizações.

Voltar ao início

Possível causa: você tem várias versões do AWS CLI no seu sistema ou não usou o mesmo método de desinstalação usado para instalar originalmente o AWS CLI

AWS CLI Talvez não seja desinstalado corretamente se você tiver desinstalado o AWS CLI usando um método diferente do usado para instalá-lo ou se tiver instalado várias versões. Por exemplo, se você usou pip para a instalação atual, deverá usar pip para desinstalá-la. Para resolver isso, desinstale AWS CLI usando o mesmo método usado para instalá-lo.

  1. Siga as instruções apropriadas do seu sistema operacional e do método de instalação original para desinstalar a AWS CLI versão 1 e a AWS CLI versão 2.

  2. Feche todos os terminais que você abriu.

  3. Abra seu terminal preferido, insira o seguinte comando e confirme que nenhuma versão é retornada.

    $ aws --version command not found: aws

    Se você ainda tiver uma versão listada na saída, provavelmente ela AWS CLI foi instalada usando um método diferente ou há várias versões. Se você não souber qual método instalou o AWS CLI, siga as instruções de cada método de desinstalação das AWS CLI versões 1 e AWS CLI 2 apropriadas ao seu sistema operacional até que nenhuma saída de versão seja recebida.

    nota

    Se você usou um gerenciador de pacotes para instalar a AWS CLI (pip, apt, brew etc.), use o mesmo gerenciador de pacotes para desinstalá-la. Siga as instruções fornecidas pelo gerenciador de pacotes sobre como desinstalar todas as versões de um pacote.

Voltar ao início

O comando AWS CLI processado com um nome de parâmetro incompleto

Possível causa: você usou uma abreviação reconhecida do parâmetro AWS CLI

Como o AWS CLI é construído usando Python, ele AWS CLI usa a argparse biblioteca Python, incluindo o argumento. allow_abbrev As abreviações dos parâmetros são reconhecidas pelo e processadas AWS CLI .

O exemplo de create-change-setcomando a seguir altera o nome da CloudFormation pilha. O parâmetro --change-set-n é reconhecido como uma abreviatura de --change-set-name e AWS CLI processa o comando.

$ aws cloudformation create-change-set --stack-name my-stack --change-set-n my-change-set

Quando a abreviação pode ser de vários comandos, o parâmetro não será reconhecido como uma abreviação.

O exemplo de create-change-setcomando a seguir altera o nome da CloudFormation pilha. O parâmetro --change-set- não é reconhecido como uma abreviação, pois há vários parâmetros dos quais ele pode ser uma abreviação, como --change-set-name e --change-set-type. Portanto, o AWS CLI não processa o comando.

$ aws cloudformation create-change-set --stack-name my-stack --change-set- my-change-set
Atenção

Não use abreviações de parâmetros propositadamente. Elas não são confiáveis e não são compatíveis com versões anteriores. Se algum novo parâmetro for adicionado a um comando que confunda as abreviações, os comandos serão interrompidos.

Além disso, se o parâmetro for um argumento de valor único, ele poderá causar um comportamento inesperado com os comandos. Se várias instâncias de um argumento de valor único forem transmitidas, somente a última instância será executada. No exemplo a seguir, o parâmetro --filters é um argumento de valor único. Os parâmetros --filters e --filter são especificados. O parâmetro --filter é uma abreviação de --filters. Isso faz com que duas instâncias de --filters sejam aplicadas e somente o último argumento --filter se aplica.

$ aws ec2 describe-vpc-peering-connections \ --filters Name=tag:TagName,Values=VpcPeeringConnection \ --filter Name=status-code,Values=active

Confirme se você está usando parâmetros válidos antes de executar um comando para evitar comportamentos inesperados.

Voltar ao início

Erros de acesso negado

Possível causa: O arquivo do AWS CLI programa não tem permissão de “execução”

No Linux ou no macOS, verifique se o programa aws tem permissões de execução para o usuário que está chamando. Normalmente, as permissões são definidas como 755.

Para adicionar permissão de execução ao usuário, execute o comando a seguir, substituindo ~/.local/bin/aws pelo caminho para o programa no computador:

$ chmod +x ~/.local/bin/aws

Voltar ao início

Causa possível: sua identidade do IAM não tem permissão para executar a operação.

Exemplo de texto de erro:

$ aws s3 ls An error occurred (AcessDenied) when calling the ListBuckets operation: Access denied.

Quando você executa um AWS CLI comando, AWS as operações são realizadas em seu nome, usando credenciais que o associam a uma conta ou função do IAM. As políticas associadas devem conceder permissão para chamar as ações de API que correspondem aos comandos executados com a AWS CLI.

A maioria dos comandos chama uma única ação com um nome que corresponde ao nome do comando. No entanto, comandos personalizados como aws s3 sync chamam várias APIs. É possível ver quais APIs um comando chama usando a opção --debug.

Se você tiver certeza de que o usuário ou a função tem as permissões adequadas atribuídas pela política, certifique-se de que seu AWS CLI comando esteja usando as credenciais que você espera. Consulte a próxima seção sobre credenciais para verificar se as credenciais que ele AWS CLI está usando são as que você espera.

Para obter informações sobre como atribuir permissões do IAM, consulte Visão geral do gerenciamento de acesso: permissões e políticas no Manual do usuário do IAM.

Voltar ao início

Credenciais inválidas e erros de chave

Exemplo de texto de erro:

$ aws s3 ls An error occurred (InvalidAccessKeyId) when calling the ListBuckets operation: The AWS Access Key Id you provided does not exist in our records.
$ aws s3 ls An error occurred (InvalidClientTokenId) when calling the ListBuckets operation: The security token included in the request is invalid.
Possível causa: AWS CLI Está lendo credenciais incorretas ou de um local inesperado

AWS CLI Pode estar lendo as credenciais de um local diferente do esperado ou as informações do seu par de chaves estão incorretas. Execute a aws configure list para confirmar quais credenciais são usadas.

O exemplo a seguir mostra como verificar as credenciais usadas para o perfil padrão.

$ aws configure list Name Value Type Location ---- ----- ---- -------- profile <not set> None None access_key ****************XYVA shared-credentials-file secret_key ****************ZAGY shared-credentials-file region us-west-2 config-file ~/.aws/config

O exemplo a seguir mostra como verificar as credenciais de um perfil nomeado.

$ aws configure list --profile saanvi Name Value Type Location ---- ----- ---- -------- profile saanvi manual --profile access_key **************** shared-credentials-file secret_key **************** shared-credentials-file region us-west-2 config-file ~/.aws/config

Para confirmar os detalhes do par de chaves, verifique os arquivos config e credentials. Para obter mais informações sobre os arquivos config e credentials, consulte Configurações do arquivo de configuração e credenciais. Para obter mais informações sobre credenciais e autenticação, incluindo a precedência de credenciais, consulte Autenticação e credenciais de acesso.

Voltar ao início

Causa possível: o relógio do computador está fora de sincronia.

Se você estiver usando credenciais válidas, seu relógio poderá estar fora de sincronia. No Linux ou macOS, execute date para verificar a hora.

$ date

Se o relógio do sistema não estiver correto dentro de alguns minutos, use ntpd para sincronizar.

$ sudo service ntpd stop $ sudo ntpdate time.nist.gov $ sudo service ntpd start $ ntpstat

No Windows, use as opções de data e hora no Painel de controle para configurar o relógio do sistema.

Voltar ao início

Assinatura não corresponde aos erros

Exemplo de texto de erro:

$ aws s3 ls An error occurred (SignatureDoesNotMatch) when calling the ListBuckets operation: The request signature we calculated does not match the signature you provided. Check your key and signing method.

Quando AWS CLI executa um comando, ele envia uma solicitação criptografada aos AWS servidores para realizar as operações de AWS serviço apropriadas. Suas credenciais (a chave de acesso e a chave secreta) estão envolvidas na criptografia e permitem AWS autenticar a pessoa que fez a solicitação. Há vários fatores que podem interferir na operação correta desse processo, conforme indicado a seguir.

Possível causa: Seu relógio está fora de sincronia com os AWS servidores

Para ajudar a proteger contra ataques de reprodução, a hora atual pode ser usada durante o processo de criptografia/descriptografia. Se a hora do cliente e a hora do servidor não coincidirem além do permitido, o processo poderá falhar e a solicitação será rejeitada. Isso também pode acontecer quando você executa um comando em uma máquina virtual cujo relógio está fora de sincronia com o relógio da máquina host. Uma causa possível é quando a máquina virtual hiberna e, depois de ativada, demora algum tempo para sincronizar o relógio com a máquina host.

No Linux ou macOS, execute date para verificar a hora.

$ date

Se o relógio do sistema não estiver correto dentro de alguns minutos, use ntpd para sincronizar.

$ sudo service ntpd stop $ sudo ntpdate time.nist.gov $ sudo service ntpd start $ ntpstat

No Windows, use as opções de data e hora no Painel de controle para configurar o relógio do sistema.

Voltar ao início

Possível causa: seu sistema operacional está manipulando incorretamente AWS as chaves que contêm determinados caracteres especiais

Se suas AWS chaves incluírem determinados caracteres especiais, como,-,, ou + /%, algumas variantes do sistema operacional processarão a cadeia de caracteres de forma inadequada e farão com que ela seja interpretada incorretamente.

Se você processar suas chaves usando outras ferramentas ou scripts, como ferramentas que criam o arquivo de credenciais em uma nova instância como parte de sua criação, essas ferramentas e scripts podem ter seu próprio tratamento de caracteres especiais, o que faz com que sejam transformados em algo que AWS não reconhece mais.

Sugerimos gerar novamente a chave secreta para obter uma que não inclua o caractere especial que está causando problemas.

Voltar ao início

Erros de nenhum console do Windows encontrado

Exemplo de texto de erro:

$ aws s3 ls No Windows console found. Are you running cmd.exe?

Ao usar um AWS CLI comando, você recebe a mensagem “Nenhum console do Windows encontrado”. Are you running cmd.exe?" (Nenhum console do Windows encontrado. Você está executando o cmd.exe?”. Isso geralmente é um erro visto na AWS CLI versão 1 se o Python prompt_toolkit que você instalou estiver desatualizado. Para resolver esse problema, instale uma versão recente do prompt_toolkit no site do Python.

Voltar ao início

Erros de certificado SSL

Possível causa: AWS CLI Não confia no certificado do seu proxy

Exemplo de texto de erro:

$ aws s3 ls [SSL: CERTIFICATE_ VERIFY_FAILED] certificate verify failed

Ao usar um AWS CLI comando, você recebe uma mensagem [SSL: CERTIFICATE_ VERIFY_FAILED] certificate verify failed de erro. Isso é causado pela AWS CLI falta de confiança no certificado do proxy devido a fatores como o certificado do proxy ser autoassinado, com sua empresa definida como Autoridade de Certificação (CA). Isso impede que eles encontrem o certificado raiz AWS CLI da CA de sua empresa no registro local da CA.

Para corrigir isso, instrua o arquivo AWS CLI onde encontrar suas empresas usando a ca_bundle configuração do .pem arquivo de configuração, a opção de linha de --ca-bundle comando ou a variável de AWS_CA_BUNDLE ambiente.

Voltar ao início

Causa possível: sua configuração não está apontando para o local correto do certificado raiz da CA

Exemplo de texto de erro:

$ aws s3 ls SSL validation failed for regionname [Errno 2] No such file or directory

Isso é causado devido ao local do arquivo do pacote da Autoridade de Certificação (CA) estar configurado incorretamente na AWS CLI. Para corrigir isso, confirme o local em que o arquivo .pem está localizado e atualize a configuração da AWS CLI usando o arquivo de configuração ca_bundle, a opção de linha de comando da --ca-bundle ou a variável de ambiente AWS_CA_BUNDLE.

Voltar ao início

Possível causa: sua configuração não está usando o correto Região da AWS

Exemplo de texto de erro:

$ aws s3 ls [SSL: CERTIFICATE_ VERIFY_FAILED] certificate verify failed

Erros ou resultados inesperados podem ocorrer se um AWS service (Serviço da AWS) não estiver disponível para o especificado Região da AWS ou se seus recursos estiverem localizados em um local diferente Região da AWS. Para obter etapas sobre a solução de problemas, consulte Verifique o que Região da AWS seu AWS CLI comando está usando.

Voltar ao início

Possível causa: sua versão do TLS precisa ser atualizada

Exemplo de texto de erro:

$ aws s3 ls [SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled

AWS service (Serviço da AWS) Está usando uma versão do TLS que é incompatível com a versão do TLS do seu dispositivo. Para resolver esse problema, atualize para uma versão compatível do TLS. Para ter mais informações, consulte Impor uma versão mínima do TLS.

Voltar ao início

Erros JSON inválidos

Exemplo de texto de erro:

$ aws dynamodb update-table \ --provisioned-throughput '{"ReadCapacityUnits":15,WriteCapacityUnits":10}' \ --table-name MyDDBTable Error parsing parameter '--provisioned-throughput': Invalid JSON: Expecting property name enclosed in double quotes: line 1 column 25 (char 24) JSON received: {"ReadCapacityUnits":15,WriteCapacityUnits":10}

Ao usar um AWS CLI comando, você recebe uma mensagem de erro Invalid JSON "”. Geralmente, esse é um erro quando você insere um comando com um formato JSON esperado e AWS CLI não consegue ler seu JSON corretamente.

Possível causa: você não inseriu um JSON válido AWS CLI para uso do

Confirme se você inseriu um JSON válido para seu comando. Sugerimos usar um validador JSON para o JSON que você está tendo dificuldade de formatar.

Para uso mais avançado de JSON na linha de comando, considere usar um processador JSON de linha de comando, como jq, para criar strings JSON. Para obter mais informações sobrejq, consulte o repositório jq em. GitHub

Voltar ao início

Possível causa: as regras de cotação do seu terminal estão impedindo o envio de JSON válido para o AWS CLI

Antes de AWS CLI receber qualquer coisa de um comando, seu terminal processa o comando usando suas próprias regras de citação e escape. Devido às regras de formatação de um terminal, parte do seu conteúdo JSON pode ser removido antes de o comando ser passado para a AWS CLI. Ao formular comandos, use as regras de aspas do seu terminal.

Para solucionar problemas, use o echo para ver como o shell está lidando com seus parâmetros:

$ echo {"ReadCapacityUnits":15,"WriteCapacityUnits":10} ReadCapacityUnits:15 WriteCapacityUnits:10
$ echo '{"ReadCapacityUnits":15,"WriteCapacityUnits":10}' {"ReadCapacityUnits":15,"WriteCapacityUnits":10}

Modifique seu comando até que o JSON válido seja retornado.

Para uma solução de problemas mais detalhada, use o parâmetro --debug para visualizar os logs de depuração, pois eles exibirão exatamente o que foi passado para a AWS CLI:

$ aws dynamodb update-table \ --provisioned-throughput '{"ReadCapacityUnits":15,WriteCapacityUnits":10}' \ --table-name MyDDBTable \ --debug 2022-07-19 22:25:07,741 - MainThread - awscli.clidriver - DEBUG - CLI version: aws-cli/1.18.147 Python/2.7.18 Linux/5.4.196-119.356.amzn2int.x86_64 botocore/1.18.6 2022-07-19 22:25:07,741 - MainThread - awscli.clidriver - DEBUG - Arguments entered to CLI: ['dynamodb', 'update-table', '--provisioned-throughput', '{"ReadCapacityUnits":15,WriteCapacityUnits":10}', '--table-name', 'MyDDBTable', '--debug']

Use as regras de aspas do seu terminal para corrigir quaisquer problemas que a entrada JSON tenha ao ser enviada à AWS CLI. Para obter mais informações sobre regras de aspas, consulte Aspas com strings na AWS CLI.

nota

Se você estiver tendo problemas para obter um JSON válido para o AWS CLI, recomendamos ignorar as regras de cotação de um terminal para entrada de dados JSON usando Blobs para passar seus dados JSON diretamente para o. AWS CLI Para obter mais informações sobre o Blobs, consulte Blob.

Voltar ao início

Recursos adicionais do

Para obter ajuda adicional com seus AWS CLI problemas, visite a AWS CLI comunidade em GitHubou a AWS re:Post comunidade.

Voltar ao início