Risolvi gli errori AWS CLI - AWS Command Line Interface

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risolvi gli errori AWS CLI

Questa sezione descrive gli errori più comuni e le procedure di risoluzione dei problemi da seguire per risolvere il problema. Ti suggeriamo di seguire prima la risoluzione generale della risoluzione dei problemi.

Risoluzione dei problemi generali da provare prima

Se ricevi un errore o riscontri un problema con il AWS CLI, ti suggeriamo i seguenti suggerimenti generali per aiutarti a risolvere il problema.

Torna all'inizio

Controlla la formattazione AWS CLI dei comandi

Se ricevi un errore che indica che un comando non esiste o che non riconosce un parametro (Parameter validation failed) indicato nella documentazione come disponibile, il comando potrebbe essere formattato in modo errato. Ti consigliamo di controllare quanto segue:

Torna all'inizio

Verifica che il Regione AWS tuo AWS CLI comando stia usando

Nota

È necessario specificare un valore Regione AWS quando si utilizza la AWS CLI, in modo esplicito o impostando una regione predefinita. Per un elenco di tutto ciò Regioni AWS che è possibile specificare, consulta AWS Regioni ed endpoint in. Riferimenti generali di Amazon Web Services I Regione AWS designatori utilizzati da AWS CLI sono gli stessi nomi che vedi negli AWS Management Console URL e negli endpoint del servizio.

Potrebbero verificarsi errori o risultati imprevisti se uno non Servizio AWS è disponibile per i dati specificati Regione AWS o se le risorse si trovano in un altro. Regione AWS In ordine di precedenza, Regione AWS viene impostato nei seguenti modi:

  • L'opzione della --region riga di comando.

  • La variabile di AWS_REGION ambiente compatibile con l'SDK.

  • La variabile di AWS_DEFAULT_REGION ambiente.

  • L'impostazione regiondel profilo.

Conferma di utilizzare le risorse corrette Regione AWS per le tue risorse.

Torna all'inizio

Conferma che stai utilizzando una versione recente di AWS CLI

Se ricevi un errore che indica che un comando non esiste o che non riconosce un parametro che la guida di di riferimento indica disponibile, verifica innanzitutto che il comando sia formattato correttamente. Se la formattazione è corretta, ti consigliamo di eseguire l'aggiornamento alla versione più recente di. AWS CLI Le versioni aggiornate di AWS CLI vengono rilasciate quasi ogni giorno lavorativo. AWS Nuovi servizi, funzionalità e parametri vengono introdotti in queste nuove versioni di AWS CLI. L'unico modo per ottenere l'accesso a questi nuovi servizi, caratteristiche o parametri è eseguire l'aggiornamento a una versione rilasciata dopo che l'elemento è stato introdotto per la prima volta.

La modalità di aggiornamento della versione di AWS CLI dipende da come è stata originariamente installata, come descritto in Installa o aggiorna alla versione più recente di AWS CLI.

Se hai utilizzato uno dei programmi di installazione in dotazione, potresti dover rimuovere l'installazione esistente prima di scaricare e installare la versione più recente per il tuo sistema operativo.

Torna all'inizio

Usa l'--debugopzione

Quando AWS CLI riporta un errore che non comprendi immediatamente o produce risultati inaspettati, puoi ottenere maggiori dettagli sull'errore eseguendo nuovamente il comando con l'--debugopzione. Con questa opzione, vengono AWS CLI visualizzati i dettagli di ogni passaggio necessario per elaborare il comando. I dettagli nell'output possono aiutarti a determinare quando si verifica l'errore e forniscono indizi su dove è iniziato.

È possibile inviare l'output a un file di testo per una revisione successiva o inviarlo AWS Support quando richiesto.

Quando includi l'--debugopzione, alcuni dettagli includono:

  • Ricerca delle credenziali

  • Analisi dei parametri specificati

  • Costruzione della richiesta inviata ai server AWS

  • Il contenuto della richiesta inviata a AWS

  • Il contenuto della risposta non elaborata

  • L'output formattato

Ecco un esempio di un comando eseguito con e senza l'opzione --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" } ] }

Torna all'inizio

Abilita e rivedi i registri della cronologia dei AWS CLI comandi

È possibile abilitare i registri della cronologia dei AWS CLI comandi utilizzando l'impostazione del cli_history file. Dopo aver abilitato questa impostazione, AWS CLI registra la cronologia dei aws comandi.

È possibile elencare la cronologia utilizzando il aws history list comando e utilizzare il command_ids risultante nel aws history show comando per i dettagli. Per ulteriori informazioni, consulta la guida di riferimento.AWS CLI

Quando includi l'--debugopzione, alcuni dettagli includono:

  • Chiamate API effettuate a botocore

  • Codici di stato

  • Risposte HTTP

  • Headers

  • Codici di restituzione

Puoi utilizzare queste informazioni per confermare che i dati dei parametri e le chiamate API si comportano come previsto e quindi dedurre in quale fase del processo il comando non funziona.

Torna all'inizio

Conferma che il tuo AWS CLI sia configurato

Se i tuoi credentials file config and o il tuo utente o ruolo IAM non sono configurati correttamente, possono verificarsi diversi errori. Per ulteriori informazioni sulla risoluzione degli errori con credentials i file config and o con l'utente o i ruoli IAM, consulta Errori di accesso negato eCredenziali non valide ed errori chiave.

Torna all'inizio

Errori relativi al comando non trovato

Questo errore indica che il sistema operativo non riesce a trovare il AWS CLI comando. L'installazione potrebbe essere incompleta o richiedere un aggiornamento.

Possibile causa: stai cercando di utilizzare una AWS CLI funzionalità più recente della versione installata o hai una formattazione errata

Esempio di testo di errore:

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

Possono verificarsi diversi errori se il comando è formattato in modo errato o se si utilizza una versione precedente precedente al rilascio della funzionalità. Per ulteriori informazioni sulla risoluzione degli errori relativi a questi due problemi, consulta e. Controlla la formattazione AWS CLI dei comandi Conferma che stai utilizzando una versione recente di AWS CLI

Torna all'inizio

Possibile causa: il terminale deve essere riavviato dopo l'installazione

Testo di errore di esempio:

$ aws --version command not found: aws

Se il aws comando non viene trovato dopo la prima installazione o l'aggiornamento di AWS CLI, potrebbe essere necessario riavviare il terminale affinché riconosca eventuali PATH aggiornamenti.

Torna all'inizio

Possibile causa: l'installazione AWS CLI non è stata completata

Testo di errore di esempio:

$ aws --version command not found: aws

Se il aws comando non può essere trovato dopo la prima installazione o l'aggiornamento di AWS CLI, è possibile che non sia stato installato completamente. Prova a reinstallarlo seguendo i passaggi relativi alla tua piattaforma in Installa o aggiorna alla versione più recente di AWS CLI.

Torna all'inizio

Possibile causa: AWS CLI non dispone di autorizzazioni (Linux)

Se il aws comando non viene trovato dopo la prima installazione o l'aggiornamento AWS CLI su Linux, è possibile che non disponga execute delle autorizzazioni per la cartella in cui è installato. Esegui il seguente comando con la PATH tua AWS CLI installazione, per fornire chmod le autorizzazioni a: AWS CLI

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

Torna all'inizio

Possibile causa: il sistema operativo non PATH è stato aggiornato durante l'installazione

Testo di errore di esempio:

$ aws --version command not found: aws

Potrebbe essere necessario aggiungere l'eseguibile aws alla variabile di ambiente PATH del sistema operativo in uso. Per aggiungerlo AWS CLI al tuoPATH, usa le seguenti istruzioni per il tuo sistema operativo.

Linux and macOS
  1. Individua lo script del profilo della shell nella cartella utente. Se non hai la certezza di quale sia la tua shell, esegui echo $SHELL.

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

    • Zsh.zshrc

    • Tcsh.tcshrc, .cshrc, o .login

  2. Aggiungi un comando di esportazione allo script del tuo profilo. Il comando seguente aggiunge il contenitore locale alla PATH variabile corrente.

    export PATH=/usr/local/bin:$PATH
  3. Ricarica il profilo aggiornato nella sessione corrente.

    $ source ~/.bash_profile
Windows
  1. In un prompt dei comandi di Windows, utilizzate il where comando con il /R path parametro per trovare la posizione del aws file. I risultati restituiscono tutte le cartelle contenentiaws.

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

    Per impostazione predefinita, la AWS CLI versione 2 si trova in:

    c:\Program Files\Amazon\AWSCLIV2\aws.exe
  2. Premere il tasto Windows e immettere environment variables.

  3. Dall'elenco dei suggerimenti, scegli Modifica variabili di ambiente per il tuo account.

  4. Seleziona PATH (PERCORSO), quindi Edit (Modifica).

  5. Aggiungi il percorso che hai trovato nel primo passaggio nel campo Valore variabile, ad esempioC:\Program Files\Amazon\AWSCLIV2\aws.exe.

  6. Fai doppio clic su OK per applicare le nuove impostazioni.

  7. Chiudi tutte le richieste di comando in esecuzione e riapri la finestra del prompt dei comandi.

Torna all'inizio

Il comando aws --version "" restituisce una versione diversa da quella installata

È possibile che il terminale restituisca una PATH risposta diversa AWS CLI da quella prevista.

Possibile causa: il terminale deve essere riavviato dopo l'installazione

Se il aws comando mostra la versione sbagliata, potrebbe essere necessario riavviare il terminale per riconoscere eventuali PATH aggiornamenti. Tutti i terminali aperti devono essere chiusi, non solo il terminale attivo.

Torna all'inizio

Possibile causa: il sistema deve essere riavviato dopo l'installazione

Se il aws comando mostra la versione sbagliata e il riavvio del terminale non ha funzionato, potrebbe essere necessario riavviare il sistema per riconoscere gli aggiornamenti. PATH

Torna all'inizio

Possibile causa: sono disponibili più versioni di AWS CLI

Se hai aggiornato AWS CLI e utilizzato un metodo di installazione diverso da quello dell'installazione preesistente, è possibile che vengano installate più versioni. Ad esempio, se su Linux o macOS lo hai utilizzato pip per l'installazione corrente, ma hai provato ad aggiornare utilizzando il file di .pkg installazione, ciò potrebbe causare alcuni conflitti, specialmente con il PATH riferimento alla versione precedente.

Per risolvere il problema, disinstalla tutte le versioni di AWS CLI ed esegui un'installazione pulita.

Dopo aver disinstallato tutte le versioni, segui le istruzioni appropriate per il tuo sistema operativo per installare la versione desiderata della AWS CLI versione 1 o della AWS CLI versione 2.

Nota

Se ciò accade dopo aver installato la AWS CLI versione 2 con un'installazione preesistente della AWS CLI versione 1, segui le istruzioni di migrazione contenute nelle Istruzioni di versione 1. AWS CLIistruzioni per la migrazione alla versione 2

Torna all'inizio

Il comando "aws --version" restituisce una versione dopo la disinstallazione di AWS CLI

Ciò si verifica spesso quando ne è ancora AWS CLI installato uno da qualche parte sul sistema.

Possibile causa: il terminale deve essere riavviato dopo la disinstallazione

Se il aws --version comando funziona ancora, potrebbe essere necessario riavviare il terminale affinché riconosca eventuali aggiornamenti del terminale.

Torna all'inizio

Possibile causa: AWS CLI sul sistema sono presenti più versioni di o non è stato utilizzato lo stesso metodo di disinstallazione utilizzato per l'installazione originale di AWS CLI

AWS CLI Potrebbe non essere disinstallato correttamente se lo hai disinstallato AWS CLI utilizzando un metodo diverso da quello usato per installarlo o se hai installato più versioni. Ad esempio, se l'hai utilizzata pip per l'installazione corrente, devi pip disinstallarla. Per risolvere il problema, esegui la disinstallazione AWS CLI utilizzando lo stesso metodo utilizzato per installarla.

  1. Segui le istruzioni appropriate per il tuo sistema operativo e il metodo di installazione originale per disinstallare la AWS CLI versione 1 e la AWS CLI versione 2.

  2. Chiudi tutti i terminali che hai aperto.

  3. Apri il tuo terminale preferito, inserisci il seguente comando e conferma che non viene restituita alcuna versione.

    $ aws --version command not found: aws

    Se hai ancora una versione elencata nell'output, probabilmente AWS CLI è stata installata utilizzando un metodo diverso o esistono più versioni. Se non sai quale metodo hai installato AWS CLI, segui le istruzioni per ogni metodo di disinstallazione per la AWS CLI versione 1 e la AWS CLI versione 2 appropriati al tuo sistema operativo fino a quando non viene ricevuta alcuna versione in uscita.

    Nota

    Se hai usato un gestore di pacchetti per installare AWS CLI (pip, aptbrew, ecc.), devi usare lo stesso gestore di pacchetti per disinstallarlo. Assicuratevi di seguire le istruzioni fornite dal gestore di pacchetti su come disinstallare tutte le versioni di un pacchetto.

Torna all'inizio

Ha AWS CLI elaborato un comando con un nome di parametro incompleto

Possibile causa: è stata utilizzata un'abbreviazione riconosciuta del parametro AWS CLI

Poiché AWS CLI è stato creato utilizzando Python, AWS CLI utilizza la argparse libreria Python, incluso l'argomento. allow_abbrev Le abbreviazioni dei parametri vengono riconosciute da ed elaborate AWS CLI .

Il seguente esempio di comando modifica il nome dello CloudFormation stack. Il parametro --change-set-n viene riconosciuto come abbreviazione di --change-set-name ed AWS CLI elabora il comando.

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

Se l'abbreviazione potrebbe essere composta da più comandi, il parametro non verrà riconosciuto come abbreviazione.

Il seguente esempio di comando modifica il nome dello CloudFormation stack. Il parametro non --change-set- è riconosciuto come abbreviazione, poiché esistono più parametri di cui potrebbe essere un'abbreviazione, ad esempio and. --change-set-name --change-set-type Pertanto AWS CLI non elabora il comando.

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

Non utilizzate intenzionalmente le abbreviazioni dei parametri. Non sono affidabili e non sono retrocompatibili. Se a un comando vengono aggiunti nuovi parametri che confondono le abbreviazioni, i comandi verranno interrotti.

Inoltre, se il parametro è un argomento a valore singolo, può causare un comportamento imprevisto con i comandi. Se vengono passate più istanze di un argomento a valore singolo, verrà eseguita solo l'ultima istanza. Nell'esempio seguente, il parametro --filters è un argomento a valore singolo. I parametri --filters e --filter sono specificati. Il --filter parametro è l'abbreviazione di. --filters Ciò comporta l'applicazione di due istanze e --filters viene applicato solo l'ultimo --filter argomento.

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

Confermate di utilizzare parametri validi prima di eseguire un comando per evitare comportamenti imprevisti.

Torna all'inizio

Errori di accesso negato

Possibile causa: il file di AWS CLI programma non dispone dell'autorizzazione di «esecuzione»

Su Linux o macOS, assicurati che il aws programma disponga delle autorizzazioni di esecuzione per l'utente chiamante. In genere, le autorizzazioni sono impostate su 755.

Per aggiungere l'autorizzazione di esecuzione per l'utente, esegui il comando seguente, sostituendo ~ /.local/bin/aws con il percorso al programma sul computer in uso:

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

Torna all'inizio

Possibile causa: la tua identità IAM non è autorizzata a eseguire l'operazione

Esempio di testo di errore:

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

Quando esegui un AWS CLI comando, AWS le operazioni vengono eseguite per tuo conto, utilizzando credenziali che ti associano a un account o a un ruolo IAM. Le policy allegate devono concederti l'autorizzazione a chiamare le azioni API che corrispondono ai comandi che esegui AWS CLI con.

La maggior parte dei comandi chiamano una singola operazione con un nome corrispondente al nome del comando. Tuttavia, comandi personalizzati come aws s3 sync chiamano più API. È possibile vedere quali API vengono chiamate da un comando utilizzando l'opzione --debug.

Se sei sicuro che l'utente o il ruolo disponga delle autorizzazioni appropriate assegnate dalla policy, assicurati che il AWS CLI comando utilizzi le credenziali che ti aspetti. Consultate la sezione successiva sulle credenziali per verificare che le credenziali utilizzate AWS CLI siano quelle previste.

Per informazioni sull'assegnazione delle autorizzazioni IAM, consulta Panoramica della gestione degli accessi: autorizzazioni e politiche nella Guida per l'utente IAM.

Torna all'inizio

Credenziali non valide ed errori chiave

Testo di errore di esempio:

$ 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.
Possibile causa: AWS CLI sta leggendo credenziali errate o da una posizione inaspettata

È AWS CLI possibile che stia leggendo le credenziali da una posizione diversa da quella prevista o che le informazioni sulla coppia di chiavi non siano corrette. Puoi eseguire aws configure list per verificare le credenziali utilizzate.

L'esempio seguente mostra come controllare le credenziali utilizzate per il profilo predefinito.

$ 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

L'esempio seguente mostra come controllare le credenziali di un profilo denominato.

$ 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

Per confermare i dettagli della tua key pair, controlla i tuoi credentials file config e. Per ulteriori informazioni sui credentials file config and, consultaImpostazioni del file di configurazione e delle credenziali. Per ulteriori informazioni sulle credenziali e sull'autenticazione, inclusa la precedenza delle credenziali, vedere. Credenziali di autenticazione e accesso

Torna all'inizio

Possibile causa: l'orologio del computer non è sincronizzato

Se utilizzi credenziali valide, l'orologio potrebbe non essere sincronizzato. Su Linux o macOS, esegui date per controllare l'ora.

$ date

Se l'orologio di sistema non viene corretto nel giro di pochi minuti, utilizza ntpd per sincronizzarlo.

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

In Windows utilizza le opzioni di data e ora nel pannello di controllo per configurare l'orologio di sistema.

Torna all'inizio

La firma non corrisponde agli errori

Esempio di testo di errore:

$ 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 esegue un comando, invia una richiesta crittografata ai AWS server per eseguire le operazioni di AWS servizio appropriate. Le credenziali (la chiave di accesso e la chiave segreta) sono coinvolte nella crittografia e AWS consentono l'autenticazione della persona che effettua la richiesta. Ci sono diversi aspetti che possono interferire con il corretto funzionamento di questo processo, come illustrato di seguito:

Possibile causa: l'orologio non è sincronizzato con i server AWS

Per proteggersi dagli attacchi di tipo 'replay' (riproduzione), puoi utilizzare l'ora corrente durante il processo di crittografia/decrittografia. Se l'ora del client e quella del server non corrispondono per un intervallo superiore a quello consentito, il processo può avere esito negativo e la richiesta viene rifiutata. Ciò si può verificare anche quando esegui un comando in una macchina virtuale il cui orologio non è sincronizzato con l'orologio del computer host. Una possibile causa è quando la macchina virtuale va in letargo e dopo il risveglio impiega del tempo per sincronizzare l'orologio con la macchina host.

Su Linux o macOS, esegui date per controllare l'ora.

$ date

Se l'orologio di sistema non viene corretto nel giro di pochi minuti, utilizza ntpd per sincronizzarlo.

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

In Windows utilizza le opzioni di data e ora nel pannello di controllo per configurare l'orologio di sistema.

Torna all'inizio

Possibile causa: il sistema operativo sta gestendo male AWS le chiavi che contengono determinati caratteri speciali

Se le AWS chiavi includono determinati caratteri speciali, ad esempio-,, o + /%, alcune varianti del sistema operativo elaborano la stringa in modo errato e causano un'interpretazione errata della stringa chiave.

Se elaborate le chiavi utilizzando altri strumenti o script, ad esempio strumenti che creano il file delle credenziali su una nuova istanza durante la sua creazione, tali strumenti e script potrebbero avere una propria gestione dei caratteri speciali che li trasforma in qualcosa che non è più riconoscibile. AWS

Ti consigliamo di rigenerare la chiave segreta per ottenerne una che non includa il carattere speciale che causa problemi.

Torna all'inizio

Errori del certificato SSL

Possibile causa: AWS CLI non si fida del certificato del proxy

Testo di errore di esempio:

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

Quando si utilizza un AWS CLI comando, viene visualizzato un messaggio [SSL: CERTIFICATE_ VERIFY_FAILED] certificate verify failed di errore. Ciò è dovuto al fatto che il certificato del proxy AWS CLI non è considerato affidabile a causa di fattori quali l'autofirma del certificato del proxy e l'autorità di certificazione (CA) della società. In questo modo non è AWS CLI possibile trovare il certificato principale CA dell'azienda nel registro CA locale.

Per risolvere questo problema, indica AWS CLI dove trovare il file aziendale utilizzando l'impostazione del .pem file di ca_bundle configurazione, l'opzione della riga di --ca-bundle comando o la variabile di AWS_CA_BUNDLE ambiente.

Torna all'inizio

Possibile causa: la configurazione non punta alla posizione corretta del certificato radice CA

Esempio di testo di errore:

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

Ciò è causato dal fatto che la posizione del file del bundle della Certification Authority (CA) non è configurata correttamente in. AWS CLI Per risolvere questo problema, confermate dove si trova il .pem file aziendale e aggiorna la AWS CLI configurazione utilizzando l'impostazione del file di ca_bundle configurazione, l'opzione della riga di --ca-bundle comando o la variabile di AWS_CA_BUNDLE ambiente.

Torna all'inizio

Possibile causa: la configurazione non utilizza la versione corretta Regione AWS

Esempio di testo di errore:

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

Potrebbero verificarsi errori o risultati imprevisti se uno non Servizio AWS è disponibile per i dati specificati Regione AWS o se le risorse si trovano in un altro Regione AWS. Per la risoluzione dei problemi, consulta Verifica che il Regione AWS tuo AWS CLI comando stia usando.

Torna all'inizio

Possibile causa: la tua versione TLS deve essere aggiornata

Testo di errore di esempio:

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

Servizio AWS sta utilizzando una versione di TLS incompatibile con la versione TLS del dispositivo. Per risolvere questo problema, esegui l'aggiornamento a una versione TLS supportata. Per ulteriori informazioni, consulta Applicazione di una versione minima di TLS.

Torna all'inizio

Errori JSON non validi

Testo di errore di esempio:

$ 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}

Quando si utilizza un AWS CLI comando, viene visualizzato un messaggio di errore Invalid JSON "». Di solito si tratta di un errore visualizzato quando si immette un comando con un formato JSON previsto e AWS CLI non è possibile leggere correttamente il codice JSON.

Possibile causa: non hai inserito un codice JSON valido da utilizzare AWS CLI

Conferma di aver inserito un codice JSON valido per il comando. Ti consigliamo di utilizzare un validatore JSON per JSON se hai problemi di formattazione.

Per un utilizzo più avanzato di JSON nella riga di comando, prendi in considerazione l'utilizzo di un processore JSON a riga di comando, ad esempio jq per creare stringhe JSON. Per ulteriori informazioni sujq, consulta il repository jq su. GitHub

Torna all'inizio

Possibile causa: le regole di quotazione del tuo terminale impediscono l'invio di un codice JSON valido a AWS CLI

Prima di AWS CLI ricevere qualcosa da un comando, il terminale elabora il comando utilizzando le proprie regole di citazione ed escape. A causa delle regole di formattazione di un terminale, parte del contenuto JSON potrebbe essere rimosso prima che il comando venga passato a. AWS CLI Quando formuli i comandi, assicurati di utilizzare le regole di quotazione del tuo terminale.

Per risolvere i problemi, usa il echo comando per vedere come la shell gestisce i tuoi parametri:

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

Modifica il comando fino a quando non viene restituito un codice JSON valido.

Per una risoluzione dei problemi più approfondita, usa il --debug parametro per visualizzare i log di debug poiché mostreranno esattamente ciò che è stato passato 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']

Usa le regole di quotazione del tuo terminale per risolvere eventuali problemi riscontrati dall'input JSON quando viene inviato a. AWS CLI Per ulteriori informazioni sulle regole di quotazione, vedere. Virgolette con stringhe in AWS CLI

Nota

Se hai problemi a ottenere un codice JSON valido su AWS CLI, ti consigliamo di ignorare le regole di quotazione di un terminale per l'immissione di dati JSON utilizzando Blobs per passare i dati JSON direttamente a. AWS CLI Per ulteriori informazioni su Blobs, consulta. Blob

Torna all'inizio

Risorse aggiuntive

Per ulteriore assistenza con i tuoi AWS CLI problemi, visita la AWS CLI community su GitHubo la AWS re:Post community.

Torna all'inizio