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à.
Risoluzione degli errori per AWS CLI
Questa sezione tratta gli errori comuni e le procedure di risoluzione dei problemi da seguire per risolvere un problema. Ti consigliamo di iniziare con i suggerimenti generali per la risoluzione dei problemi.
Indice
Il comando aws --version restituisce una versione diversa da quella installata
Il comando "aws --version" restituisce una versione dopo la disinstallazione di AWS CLI
Hanno AWS CLI elaborato un comando con un nome di parametro incompleto
Risoluzione generale dei problemi come primo tentativo
Se ricevi un errore o riscontri un problema con il AWS CLI, ti suggeriamo i seguenti suggerimenti generali per aiutarti a risolverlo.
Controlla la formattazione dei comandi AWS CLI
Se ricevi un errore in cui viene segnalato che un comando non esiste o che non viene riconosciuto un parametro (Parameter validation failed) indicato nella documentazione come disponibile, è possibile che il comando sia formattato in modo errato. Ti suggeriamo di controllare quanto segue:
-
Controlla la presenza di errori di ortografia e formattazione nel comando.
-
Verifica che tutte le virgolette e tutti i caratteri di escape appropriati per il terminale siano riportati correttamente nel comando.
-
Genera uno scheletro della AWS CLI per verificare la struttura del comando.
-
Per JSON, consulta la sezione aggiuntiva sulla risoluzione dei problemi relativi ai valori JSON. Se riscontri problemi con l’elaborazione della formattazione JSON nel terminale, ti suggeriamo di ignorare le regole di utilizzo delle virgolette del terminale utilizzando Blob per passare i dati JSON direttamente alla AWS CLI.
Per ulteriori informazioni su come deve essere strutturato un comando specifico, consulta la guida di di riferimento.
Verifica che AWS CLI comando Regione AWS stia usando il tuo comando
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 Console di gestione AWS URLs 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:
-
Opzione della riga di comando
--region -
Variabile di ambiente
AWS_REGIONcompatibile con l’SDK -
Variabile di ambiente
AWS_DEFAULT_REGION -
Impostazione del profilo region
Conferma di utilizzare quello corretto Regione AWS per le tue risorse.
Verifica di disporre di una versione recente della 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 della 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 Installazione o aggiornamento dell’ultima versione di AWS CLI.
Se hai utilizzato uno dei programmi di installazione in bundle, potresti dover rimuovere l’installazione esistente e quindi scaricare e installare la versione più recente per il sistema operativo in uso.
Utilizza l’opzione --debug
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, la AWS CLI
restituisce i dettagli di ogni fase di elaborazione del comando. I dettagli riportati nell’output possono aiutarti a determinare quando si è verificato l’errore e fornire spunti sul contesto in cui ha avuto origine.
Puoi trasferire l’output in un file di testo per esaminarlo in un secondo momento o per inviarlo al Supporto AWS quando richiesto.
Quando utilizzi l’opzione --debug, tra i dettagli sono inclusi:
-
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"
}
]
}
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.
Puoi generare l’elenco della cronologia utilizzando il comando aws history list e utilizzare il valore di command_ids risultante nel comando aws history show per i dettagli. Per ulteriori informazioni, consulta aws
history nella Guida di riferimento della AWS CLI .
Quando utilizzi l’opzione --debug, tra i dettagli sono inclusi:
-
Chiamate API effettuate a botocore
-
Codici di stato
-
Risposte HTTP
-
Headers
-
Codici restituiti
Puoi utilizzare queste informazioni per verificare che i dati dei parametri e le chiamate API si comportino nel modo previsto e quindi dedurre in quale fase del processo viene generato l’errore del comando.
Conferma che il tuo AWS CLI è configurato
Se il tuo utente o ruolo IAM oppure i tuoi file credentials e config non sono configurati correttamente, possono verificarsi diversi errori. Per ulteriori informazioni sulla risoluzione degli errori relativi ai file credentials e config oppure all’utente o ai ruoli IAM, consulta Errori di accesso negato e Credenziali non valide ed errori delle chiavi.
Errori di comando non trovato
Questo errore indica che il sistema operativo non riesce a trovare il AWS CLI comando. L’installazione potrebbe essere incompleta o deve essere aggiornata.
- Possibile causa: stai cercando di utilizzare una AWS CLI funzionalità più recente della versione installata o hai una formattazione errata
-
Esempio di testo dell’errore:
$aws s3 copyaws: [ERROR]: argument operation: Found invalid choice 'copy' usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters] To see help text, you can run: aws help aws <command> help aws <command> <subcommand> helpSe il comando è formattato in modo errato o se utilizzi una versione precedente al rilascio della funzionalità, possono verificarsi diversi errori. Per ulteriori informazioni sulla risoluzione degli errori relativi a questi due problemi, consulta Controlla la formattazione dei comandi AWS CLI e Verifica di disporre di una versione recente della AWS CLI.
- Possibile causa: il terminale deve essere riavviato dopo l’installazione
-
Esempio di testo dell’errore:
$aws --versioncommand not found: awsSe il
awscomando non viene trovato dopo la prima installazione o l'aggiornamento di AWS CLI, potrebbe essere necessario riavviare il terminale per far sì che riconosca eventualiPATHaggiornamenti. - Possibile causa: l'installazione AWS CLI non è stata completata
-
Esempio di testo dell’errore:
$aws --versioncommand not found: awsSe il
awscomando non viene trovato dopo la prima installazione o l'aggiornamento di AWS CLI, è possibile che non sia stato installato completamente. Prova a reinstallarla seguendo le fasi specifiche per la piattaforma in uso riportate in Installazione o aggiornamento dell’ultima versione di AWS CLI. - Possibile causa: AWS CLI non dispone di autorizzazioni (Linux)
-
Se il
awscomando non viene trovato dopo la prima installazione o l'aggiornamento AWS CLI su Linux, è possibile che non dispongaexecutedelle autorizzazioni per la cartella in cui è installato. Esegui il seguente comando con laPATHtua AWS CLI installazione, per fornirechmodle autorizzazioni a: AWS CLI$sudo chmod -R 755/usr/local/aws-cli/ - Possibile causa: la variabile
PATHdel sistema operativo non è stata aggiornata durante l’installazione -
Esempio di testo dell’errore:
$aws --versioncommand not found: awsPotrebbe essere necessario aggiungere l'eseguibile
awsalla variabile di ambientePATHdel sistema operativo in uso. Per aggiungerlo AWS CLI al tuoPATH, usa le seguenti istruzioni per il tuo sistema operativo.
Il comando aws --version restituisce una versione diversa da quella installata
Il tuo terminale potrebbe restituire un PATH messaggio diverso AWS CLI da quello previsto.
- Possibile causa: il terminale deve essere riavviato dopo l’installazione
-
Se il comando
awsmostra la versione errata, potrebbe essere necessario riavviare il terminale in modo che riconosca gli aggiornamenti della variabilePATH. Tutti i terminali aperti devono essere chiusi, non solo quello attivo. - Possibile causa: il sistema deve essere riavviato dopo l’installazione
-
Se il comando
awsmostra la versione errata e il riavvio del terminale non ha funzionato, potrebbe essere necessario riavviare il sistema per far sì che riconosca gli aggiornamenti della variabilePATH. - 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 hai utilizzato
pipper l’installazione corrente, ma hai provato a eseguire l’aggiornamento utilizzando il file di installazione.pkg, è possibile che si verifichino alcuni conflitti, soprattutto con la variabilePATHche punta alla versione precedente.Per risolvere il problema, disinstalla tutte le versioni della AWS CLI ed esegui un’installazione pulita.
Dopo aver disinstallato tutte le versioni, segui le istruzioni appropriate per il sistema operativo in uso in modo da 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. Installazione della versione 2 della AWS CLI dalla AWS CLI versione 1
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 comando
aws --versionfunziona ancora, potrebbe essere necessario riavviare il terminale per far sì che riconosca eventuali aggiornamenti. - Possibile causa: AWS CLI sul sistema sono presenti più versioni di o non è stato utilizzato lo stesso metodo di disinstallazione utilizzato originariamente per l'installazione 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 hai utilizzato
pipper l’installazione corrente, devi utilizzarepipanche per la disinstallazione. Per risolvere il problema, esegui la disinstallazione AWS CLI utilizzando lo stesso metodo utilizzato per l'installazione.-
Segui le istruzioni appropriate per il sistema operativo in uso e per il metodo di installazione utilizzato originariamente per disinstallare la AWS CLI versione 1 e la AWS CLI versione 2.
-
Chiudi tutti i terminali aperti.
-
Apri il tuo terminale preferito, inserisci il seguente comando e verifica che non venga restituita alcuna versione.
$aws --versioncommand not found: awsSe nell'output è ancora presente una versione, è probabile che sia AWS CLI stata installata utilizzando un metodo diverso o che esistano 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 per installare la AWS CLI hai utilizzato un gestore di pacchetti (
pip,apt,brewe così via), devi utilizzare lo stesso gestore di pacchetti per disinstallarla. Assicurati di seguire le istruzioni fornite dal gestore di pacchetti su come disinstallare tutte le relative versioni.
-
Hanno 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
argparselibreria Python, incluso l'argomento.allow_abbrevLe 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-nviene riconosciuto come abbreviazione di--change-set-nameed AWS CLI elabora il comando.$aws cloudformation create-change-set --stack-name my-stack--change-set-nmy-change-setQuando l’abbreviazione può essere utilizzata per più comandi, il parametro non viene riconosciuto come abbreviazione.
Il seguente esempio di comando modifica il nome dello CloudFormation stack. Il parametro
--change-set-non è riconosciuto come abbreviazione poiché potrebbe essere un’abbreviazione di più parametri, ad esempio--change-set-namee--change-set-type. Pertanto AWS CLI non elabora il comando.$aws cloudformation create-change-set --stack-name my-stack--change-set-my-change-setavvertimento
Non utilizzare intenzionalmente le abbreviazioni dei parametri. Non sono affidabili e non sono retrocompatibili. Se ai comandi vengono aggiunti nuovi parametri che rendono dubbie le abbreviazioni, i comandi vengono interrotti.
Inoltre, se il parametro è un argomento a valore singolo, può causare un comportamento imprevisto dei comandi. Se vengono passate più istanze di un argomento a valore singolo, viene eseguita solo l’ultima istanza. Nell’esempio seguente, il parametro
--filtersè un argomento a valore singolo. Sono specificati entrambi i parametri--filterse--filter. Il parametro--filterè l’abbreviazione di--filters. Ciò comporterebbe l’applicazione di due istanze di--filters, ma in realtà viene applicato solo l’ultimo argomento--filter.$aws ec2 describe-vpc-peering-connections \--filtersName=tag:TagName,Values=VpcPeeringConnection \--filterName=status-code,Values=activePrima di eseguire un comando, verifica di utilizzare parametri validi per evitare comportamenti imprevisti.
Errori di accesso negato
- Possibile causa: il file di AWS CLI programma non dispone del permesso di «esecuzione»
-
Su Linux o macOS, assicurati che il programma
awsdisponga delle autorizzazioni di esecuzione per l’utente che effettua la chiamata. In genere, le autorizzazioni sono impostate su755.Per aggiungere l'autorizzazione di esecuzione per l'utente, esegui il comando seguente, sostituendolo
~/.local/bin/awscon il percorso del programma sul tuo computer.$chmod +x~/.local/bin/aws - Possibile causa: l’identità IAM non dispone dell’autorizzazione per eseguire l’operazione
-
Esempio di testo dell’errore:
$aws s3 lsAn 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 associate devono concedere l’autorizzazione per chiamare le operazioni API corrispondenti ai comandi eseguiti con la AWS CLI.
La maggior parte dei comandi chiamano una singola operazione con un nome corrispondente al nome del comando. Tuttavia, comandi personalizzati come le
aws s3 syncchiamate multiple APIs. È possibile vedere quale APIs comando chiama utilizzando l'--debugopzione.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 previste. 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 policy nella Guida per l’utente di IAM.
Credenziali non valide ed errori delle chiavi
Esempio di testo dell’errore:
$aws s3 lsAn error occurred (InvalidAccessKeyId) when calling the ListBuckets operation: The AWS Access Key Id you provided does not exist in our records.
$aws s3 lsAn 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 listper verificare le credenziali utilizzate.L'esempio seguente mostra come controllare le credenziali utilizzate per il profilo predefinito.
$aws configure listNAME : VALUE : TYPE : LOCATION profile : <not set> : None : None access_key : ****************ABCD : shared-credentials-file : secret_key : ****************ABCD : shared-credentials-file : region : us-west-2 : env : AWS_DEFAULT_REGIONL'esempio seguente mostra come controllare le credenziali di un profilo denominato.
$aws configure list --profile dev01NAME : VALUE : TYPE : LOCATION profile : dev01 : None : --profile access_key : ****************ABCD : shared-credentials-file : secret_key : ****************ABCD : shared-credentials-file : region : us-west-2 : config-file : ~/.aws/configPer verificare i dettagli della tua coppia di chiavi, controlla i file
credentialseconfig. Per ulteriori informazioni sui fileconfigecredentials, consulta Impostazioni dei file di configurazione e delle credenziali nella AWS CLI. Per ulteriori informazioni sulle credenziali e sull’autenticazione, inclusa la precedenza delle credenziali, consulta Credenziali di autenticazione e accesso per la AWS CLI. - Possibile causa: l’orologio del computer non è sincronizzato
-
Se utilizzi credenziali valide, l’orologio potrebbe non essere sincronizzato. Su Linux o macOS, esegui
dateper controllare l’ora.$dateSe l’orologio di sistema non viene corretto nel giro di pochi minuti, utilizza
ntpdper sincronizzarlo.$sudo service ntpd stop$sudo ntpdate time.nist.gov$sudo service ntpd start$ntpstatIn Windows utilizza le opzioni di data e ora nel pannello di controllo per configurare l'orologio di sistema.
Errori di firma non corrispondente
Esempio di testo dell’errore:
$aws s3 lsAn 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 replay
, è possibile utilizzare l'ora corrente durante il encryption/decryption processo. 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 è legata al caso in cui la macchina virtuale entra in stato di ibernazione e l’intervallo richiesto per la sua riattivazione e la successiva sincronizzazione dell’orologio con il computer host risulta eccessivo. Su Linux o macOS, esegui
dateper controllare l’ora.$dateSe l’orologio di sistema non viene corretto nel giro di pochi minuti, utilizza
ntpdper sincronizzarlo.$sudo service ntpd stop$sudo ntpdate time.nist.gov$sudo service ntpd start$ntpstatIn Windows utilizza le opzioni di data e ora nel pannello di controllo per configurare l'orologio di sistema.
- 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 suggeriamo di rigenerare la chiave segreta in modo da ottenerne una in cui non è presente il carattere speciale che causa problemi.
Errori di certificato SSL
- Possibile causa: AWS CLI non si fida del certificato del proxy
-
Esempio di testo dell’errore:
$aws s3 ls[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failedQuando si utilizza un AWS CLI comando, viene visualizzato un messaggio
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify faileddi 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à. Ciò impedisce alla AWS CLI di trovare il certificato principale CA della società nel registro CA locale.Per risolvere questo problema, indica AWS CLI dove trovare il file aziendale utilizzando l'impostazione
.pemdel file dica_bundleconfigurazione, l'opzione della riga di --ca-bundle comando o laAWS_CA_BUNDLEvariabile di ambiente. - Possibile causa: la configurazione non punta alla posizione corretta del certificato root della CA
-
Esempio di testo dell’errore:
$aws s3 lsSSL validation failed forregionname[Errno 2] No such file or directoryCiò è dovuto al fatto che la posizione del file del bundle della CA non è configurata correttamente nella AWS CLI. Per risolvere questo problema, indica alla
.pemla posizione in cui trovare il file AWS CLI della società utilizzando l’impostazione del file di configurazioneca_bundle, l’opzione della riga di comando --ca-bundle o la variabile di ambienteAWS_CA_BUNDLE. - Possibile causa: la tua configurazione non utilizza il codice corretto Regione AWS
-
Esempio di testo dell’errore:
$aws s3 ls[SSL: CERTIFICATE_ VERIFY_FAILED] certificate verify failedPotrebbero 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 AWS CLI comando Regione AWS stia usando il tuo comando.
- Possibile causa: la versione di TLS deve essere aggiornata
-
Esempio di testo dell’errore:
$aws s3 ls[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabledServizio AWS Sta utilizzando una versione di TLS incompatibile con la versione TLS del dispositivo. Per risolvere il problema, esegui l’aggiornamento a una versione di TLS supportata. Per ulteriori informazioni, consulta Applicazione di una versione minima di TLS 1.2 per AWS CLI.
Errori JSON non validi
Esempio di testo dell’errore:
$aws dynamodb update-table \ --provisioned-throughput'{"ReadCapacityUnits":15,WriteCapacityUnits":10}'\ --table-name MyDDBTableError 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
-
Verifica di aver inserito codice JSON valido per il comando. Se riscontri problemi di formattazione del codice JSON, ti suggeriamo di utilizzare un validatore JSON.
Per un utilizzo più avanzato del codice JSON su una 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 jqsu. GitHub - Possibile causa: le regole di quotazione del 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 alla AWS CLI. Quando formuli i comandi, assicurati di applicare le regole di utilizzo delle virgolette del terminale.
Per risolvere il problema, utilizza il comando
echoper vedere in che modo i parametri vengono gestiti dalla shell:$echo {"ReadCapacityUnits":15,"WriteCapacityUnits":10}ReadCapacityUnits:15 WriteCapacityUnits:10$echo '{"ReadCapacityUnits":15,"WriteCapacityUnits":10}'{"ReadCapacityUnits":15,"WriteCapacityUnits":10}Modifica il comando finché non viene restituito codice JSON valido.
Per una risoluzione dei problemi più approfondita, utilizza il parametro
--debugper visualizzare i log di debug che mostreranno i dati esatti passati alla AWS CLI:$aws dynamodb update-table \ --provisioned-throughput'{"ReadCapacityUnits":15,WriteCapacityUnits":10}'\ --table-name MyDDBTable \ --debug2022-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']Applica le regole di utilizzo delle virgolette del terminale per risolvere eventuali problemi riscontrati dall’input JSON quando viene inviato alla AWS CLI. Per ulteriori informazioni sulle regole di utilizzo delle virgolette, consulta Utilizzo di virgolette e valori letterali con stringhe nella AWS CLI.
Nota
Se hai problemi a inserire un codice JSON valido su AWS CLI, ti consigliamo di aggirare 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 sui Blob, consulta Blob.
Risorse aggiuntive
Per ulteriore assistenza con i tuoi AWS CLI problemi, visita la community su o la community.AWS CLIGitHubAWS re:Post