Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Behebung von Fehlern für den AWS CLI
In diesem Abschnitt werden häufige Fehler sowie Maßnahmen beschrieben, mit denen sich die Probleme beheben lassen. Wir empfehlen, zunächst die Maßnahmen der allgemeinen Problembehebung zu befolgen.
Inhalt
- Allgemeine Fehlerbehebung, die Sie zuerst versuchen sollten
- Überprüfen Sie die Formatierung Ihrer AWS CLI Befehle
- Überprüfen Sie, ob AWS-Region Ihr AWS CLI Befehl verwendet
- Sicherstellen, dass Sie eine aktuelle Version der AWS CLI ausführen
- Verwenden der Option --debug
- Aktivieren und überprüfen Sie die AWS CLI Befehlsverlaufsprotokolle
- Vergewissern Sie sich, dass Ihr konfiguriert ist AWS CLI
- Fehler aufgrund eines nicht gefundenen Befehls
- Der Befehl „aws --version“ gibt eine andere als die installierte Version zurück
- Der Befehl "aws --version" gibt nach der Deinstallation von eine Version zurück AWS CLI
- Hat einen Befehl mit einem unvollständigen Parameternamen AWS CLI verarbeitet
- Fehler aufgrund einer Zugriffsverweigerung
- Ungültige Anmeldeinformationen und Schlüsselfehler
- Fehler aufgrund einer nicht übereinstimmenden Signatur
- SSLZertifikatsfehler
- Ungültige JSON Fehler
- Weitere Ressourcen
Allgemeine Fehlerbehebung, die Sie zuerst versuchen sollten
Wenn Sie einen Fehler erhalten oder auf ein Problem mit dem stoßen AWS CLI, empfehlen wir Ihnen die folgenden allgemeinen Tipps, um Ihnen bei der Behebung zu helfen.
Überprüfen Sie die Formatierung Ihrer AWS CLI Befehle
Wenn Sie eine Fehlermeldung erhalten, dass ein Befehl nicht vorhanden ist oder dass ein Parameter (Parameter validation failed
) nicht erkannt wird, der laut der Dokumentation verfügbar ist, ist der Befehl möglicherweise falsch formatiert. Wir empfehlen, Folgendes zu überprüfen:
-
Überprüfen Sie Ihren Befehl auf Rechtschreib- und Formatierungsfehler.
-
Vergewissern Sie sich, dass alle Anführungszeichen und Escapes für Ihr Terminal in Ihrem Befehl korrekt sind.
-
Generieren Sie ein AWS CLI -Skeleton, um Ihre Befehlsstruktur zu bestätigen.
-
Weitere Informationen finden Sie in der zusätzlichen Problembehandlung für JSON Werte. JSON Wenn Sie Probleme mit der JSON Formatierung Ihrer Terminalverarbeitung haben, empfehlen wir Ihnen, die Anführungsregeln des Terminals zu umgehen, indem Sie Blobs verwenden, um JSON Daten direkt an das zu übergeben. AWS CLI
Weitere Informationen darüber, wie ein bestimmter Befehl strukturiert sein sollte, finden Sie im Version 2.
Überprüfen Sie, ob AWS-Region Ihr AWS CLI Befehl verwendet
Anmerkung
Sie müssen eine angeben, AWS-Region wenn Sie die verwenden AWS CLI, entweder explizit oder indem Sie eine Standardregion festlegen. Eine Liste aller Regionen AWS-Regionen , die Sie angeben können, finden Sie unter AWS Regionen und Endpunkte in der Allgemeine Amazon Web Services-Referenz. Bei den verwendeten AWS-Region Bezeichnungen AWS CLI handelt es sich um dieselben Namen wie in den Endpunkten AWS Management Console URLs und Diensten.
Fehler oder unerwartete Ergebnisse können auftreten, wenn eine für den von Ihnen angegebenen nicht AWS-Service verfügbar ist AWS-Region oder sich Ihre Ressourcen in einem anderen befinden. AWS-Region In der Reihenfolge ihrer Rangfolge AWS-Region wird das wie folgt festgelegt:
-
Die Befehlszeilenoption
--region
-
Die SDK kompatible
AWS_REGION
Umgebungsvariable. -
Die
AWS_DEFAULT_REGION
Umgebungsvariable. -
Die regionProfileinstellung.
Vergewissern Sie sich, dass Sie das Richtige AWS-Region für Ihre Ressourcen verwenden.
Sicherstellen, dass Sie eine aktuelle Version der AWS CLI ausführen
Wenn Sie eine Fehlermeldung erhalten, die darauf hinweist, dass ein Befehl nicht existiert oder dass ein Parameter nicht erkannt wird, der laut Version 2
Wie Sie Ihre Version von aktualisieren, AWS CLI hängt davon ab, wie Sie sie ursprünglich installiert haben, wie unter beschrieben Installation oder Aktualisierung auf die neueste Version von AWS CLI.
Wenn Sie eines der gebündelten Installationsprogramme verwendet haben, sollten Sie die vorhandene Installation entfernen und die neueste Version für Ihr Betriebssystem herunterladen und installieren.
Verwenden der Option --debug
Wenn der einen Fehler AWS CLI meldet, den Sie nicht sofort verstehen, oder zu Ergebnissen führt, die Sie nicht erwarten, können Sie weitere Informationen zu dem Fehler abrufen, indem Sie den Befehl mit der --debug
Option erneut ausführen. Mit dieser Option gibt die AWS CLI
Informationen zu den einzelnen Schritten aus, die zur Verarbeitung des Befehls erforderlich sind. Anhand der Informationen in der Ausgabe können Sie ermitteln, an welcher Stelle der Fehler auftritt und wo er seinen Ursprung hat.
Sie können die Ausgabe an eine Textdatei senden, um sie später zu überprüfen oder an den AWS Support zu senden, wenn Sie dazu aufgefordert werden.
Wenn Sie die Option --debug
einfügen, umfassen die Informationen u. a.:
-
Suche nach Anmeldeinformationen
-
Analysieren der bereitgestellten Parameter
-
Konstruieren der an Server gesendeten Anfrage AWS
-
Der Inhalt der Anfrage wurde gesendet an AWS
-
Inhalt der unformatierten Antwort
-
Die formatierte Ausgabe
Es folgt ein Beispiel für einen Befehl, der mit und ohne die Option --debug
ausgeführt wird.
$
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"
}
]
}
Aktivieren und überprüfen Sie die AWS CLI Befehlsverlaufsprotokolle
Sie können die AWS CLI Befehlsverlaufsprotokolle mithilfe der cli_history
Dateieinstellung aktivieren. Nach dem Aktivieren dieser Einstellung AWS CLI zeichnet das den Verlauf der aws
Befehle auf.
Sie können Ihren Verlauf mit dem aws history list
-Befehl auflisten und die resultierenden command_ids im aws history show
-Befehl für Details verwenden. Weitere Informationen finden Sie unter aws
history
Wenn Sie die Option --debug
einfügen, umfassen die Informationen u. a.:
-
APIAnrufe an Botocore
-
Statuscodes
-
HTTPAntworten
-
Überschriften
-
Rückgabecodes
Anhand dieser Informationen können Sie überprüfen, ob sich Parameterdaten und API Aufrufe erwartungsgemäß verhalten, und Sie können dann ableiten, an welchem Schritt im Prozess Ihr Befehl fehlschlägt.
Vergewissern Sie sich, dass Ihr konfiguriert ist AWS CLI
Verschiedene Fehler können auftreten, wenn Ihre credentials
Dateien config
und oder Ihr IAM Benutzer oder Ihre Rolle nicht richtig konfiguriert sind. Weitere Informationen zur Behebung von Fehlern mit config
und credentials
-Dateien oder Ihrem IAM Benutzer oder Ihren Rollen finden Sie unter Fehler aufgrund einer Zugriffsverweigerung undUngültige Anmeldeinformationen und Schlüsselfehler.
Fehler aufgrund eines nicht gefundenen Befehls
Dieser Fehler bedeutet, dass das Betriebssystem den AWS CLI Befehl nicht finden kann. Die Installation ist möglicherweise unvollständig oder muss aktualisiert werden.
- Mögliche Ursache: Sie versuchen, eine neue AWS CLI Funktion als Ihre installierte Version zu verwenden, oder Sie haben eine falsche Formatierung
-
Beispiel-Fehlertext:
$
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 ....Verschiedene Fehler können auftreten, wenn Ihr Befehl inkorrekt formatiert ist oder wenn Sie eine Version verwenden, die vor der Veröffentlichung der Funktion erstellt wurde. Weitere Informationen zur Behebung dieser beiden Arten von Problemen finden Sie unter Überprüfen Sie die Formatierung Ihrer AWS CLI Befehle und Sicherstellen, dass Sie eine aktuelle Version der AWS CLI ausführen.
- Mögliche Ursache: Das Terminal muss nach der Installation neu gestartet werden.
-
Beispiel-Fehlertext:
$
aws --version
command not found: aws
Wenn der
aws
Befehl nach der ersten Installation oder Aktualisierung von nicht gefunden werden kann AWS CLI, müssen Sie möglicherweise Ihr Terminal neu starten, damit es allePATH
Updates erkennt. - Mögliche Ursache: Der AWS CLI wurde nicht vollständig installiert
-
Beispiel-Fehlertext:
$
aws --version
command not found: aws
Wenn der
aws
Befehl nach der ersten Installation oder Aktualisierung von nicht gefunden werden kann AWS CLI, wurde er möglicherweise nicht vollständig installiert. Versuchen Sie, sie erneut zu installieren, indem Sie die unter Installation oder Aktualisierung auf die neueste Version von AWS CLI angegebenen Schritte für Ihre Plattform ausführen. - Mögliche Ursache: Der AWS CLI hat keine Berechtigungen (Linux)
-
Wenn der
aws
Befehl nach der ersten Installation oder Aktualisierung von AWS CLI unter Linux nicht gefunden werden kann, hat er möglicherweise keineexecute
Berechtigungen für den Ordner, in dem er installiert wurde. Führen Sie den folgenden Befehl zusammen mit Ihrer AWS CLI Installation aus, umchmod
Berechtigungen für zu gewähren AWS CLI:PATH
$
sudo chmod -R 755
/usr/local/aws-cli/
- Mögliche Ursache: Die Umgebungsvariable
PATH
des Betriebssystems wurde während der Installation nicht aktualisiert. -
Beispiel-Fehlertext:
$
aws --version
command not found: aws
Möglicherweise müssen Sie die ausführbare
aws
-Datei zur UmgebungsvariablenPATH
des Betriebssystems hinzufügen. Verwenden Sie AWS CLI die folgenden Anweisungen für Ihr BetriebssystemPATH
, um das zu Ihrem hinzuzufügen.
Der Befehl „aws --version
“ gibt eine andere als die installierte Version zurück
Ihr Terminal gibt möglicherweise ein anderes PATH
AWS CLI als erwartetes Ergebnis zurück.
- Mögliche Ursache: Das Terminal muss nach der Installation neu gestartet werden.
-
Wenn der
aws
-Befehl die falsche Version anzeigt, müssen Sie möglicherweise Ihr Terminal neu starten, damitPATH
-Aktualisierungen erkannt werden. Alle offenen Terminals müssen geschlossen werden, nicht nur Ihr aktives Terminal. - Mögliche Ursache: Das Terminal muss nach der Installation neu gestartet werden.
-
Wenn der
aws
-Befehl die falsche Version anzeigt, müssen Sie möglicherweise Ihr Terminal neu starten, damitPATH
-Aktualisierungen erkannt werden. - Mögliche Ursache: Sie haben mehrere Versionen von AWS CLI
-
Wenn Sie das aktualisiert AWS CLI und eine andere Installationsmethode als Ihre bereits vorhandene Installation verwendet haben, können mehrere Versionen installiert werden. Beispiel: Wenn Sie unter Linux oder macOS
pip
für die aktuelle Installation verwendet, aber versucht haben, die Aktualisierung mithilfe der.pkg
-Installationsdatei auszuführen, könnte dies zu Konflikten führen – insbesondere, wennPATH
auf die alte Version verweist.Um dies zu beheben, deinstallieren Sie alle Versionen der AWS CLI und nehmen Sie eine Neuinstallation vor.
Befolgen Sie nach der Deinstallation aller Versionen die Anweisungen für Ihr Betriebssystem, um die gewünschte Version der AWS CLI Version 1 oder AWS CLI Version 2 zu installieren.
Anmerkung
Wenn dies passiert, nachdem Sie AWS CLI Version 2 mit einer bereits vorhandenen Installation von AWS CLI Version 1 installiert haben, folgen Sie . AWS CLI AWS CLI Version 2 von AWS CLI Version 1 installieren
Der Befehl "aws --version
" gibt nach der Deinstallation von eine Version zurück AWS CLI
Dies tritt häufig auf, wenn noch irgendwo auf Ihrem System eine AWS CLI installiert ist.
- Mögliche Ursache: Das Terminal muss nach der Deinstallation neu gestartet werden.
-
Wenn der Befehl
aws --version
weiterhin funktioniert, müssen Sie möglicherweise Ihr Terminal neu starten, damit Terminal-Aktualisierungen erkannt werden. - Mögliche Ursache: Sie haben mehrere Versionen von AWS CLI auf Ihrem System oder haben nicht dieselbe Deinstallationsmethode verwendet, mit der Sie das ursprünglich installiert haben AWS CLI
-
Sie werden AWS CLI möglicherweise nicht korrekt deinstalliert, wenn Sie sie AWS CLI mit einer anderen Methode deinstalliert haben, als Sie sie zur Installation verwendet haben, oder wenn Sie mehrere Versionen installiert haben. Wenn Sie beispielsweise
pip
für die aktuelle Installation verwendet haben, müssen Siepip
auch für die Deinstallation verwenden. Um dieses Problem zu beheben, deinstallieren Sie es AWS CLI mit derselben Methode, mit der Sie es installiert haben.-
Befolgen Sie die Anweisungen für Ihr Betriebssystem und die ursprüngliche Installationsmethode, um die AWS CLI Version 1 und die AWS CLI Version 2 zu deinstallieren.
-
Schließen Sie alle offenen Terminals.
-
Öffnen Sie Ihr bevorzugtes Terminal, geben Sie den folgenden Befehl ein und vergewissern Sie sich, dass keine Version zurückgegeben wird.
$
aws --version
command not found: aws
Wenn in der Ausgabe immer noch eine Version aufgeführt ist, AWS CLI wurde diese höchstwahrscheinlich mit einer anderen Methode installiert, oder es gibt mehrere Versionen. Wenn Sie nicht wissen, welche Methode Sie installiert haben AWS CLI, folgen Sie den Anweisungen für jede Deinstallationsmethode für die AWS CLI Version 1 und AWS CLI Version 2, die Ihrem Betriebssystem entsprechen, bis keine Versionsausgabe mehr eingeht.
Anmerkung
Wenn Sie einen Paket-Manager für die Installation der AWS CLI (
pip
,apt
,brew
usw.) verwendet haben, müssen Sie für die Deinstallation denselben Paket-Manager verwenden. Befolgen Sie unbedingt die Anweisungen des Paket-Managers zur Deinstallation aller Versionen eines Pakets.
-
Hat einen Befehl mit einem unvollständigen Parameternamen AWS CLI verarbeitet
- Mögliche Ursache: Sie haben eine erkannte Abkürzung des Parameters AWS CLI verwendet.
-
Da der AWS CLI mit Python erstellt wurde, AWS CLI verwendet der die
argparse
Python-Bibliothek, einschließlich desallow_abbrev
Arguments. Abkürzungen von Parametern werden von der erkannt AWS CLI und verarbeitet. Das folgende Befehlsbeispiel ändert den CloudFormation Stacknamen. Der Parameter
--change-set-n
wird als Abkürzung für erkannt und der Befehl wird AWS CLI verarbeitet.--change-set-name
$
aws cloudformation create-change-set --stack-name my-stack
--change-set-n
my-change-setWenn sich Ihre Abkürzung auf mehrere Befehle beziehen könnte, wird der Parameter nicht als Abkürzung erkannt.
Das folgende Befehlsbeispiel ändert den CloudFormation Stacknamen. Der Parameter
--change-set-
wird nicht als Abkürzung erkannt, da es mehrere Parameter gibt, für die er eine Abkürzung sein könnte, z. B.--change-set-name
und--change-set-type
. Daher verarbeitet der den Befehl AWS CLI nicht.$
aws cloudformation create-change-set --stack-name my-stack
--change-set-
my-change-setWarnung
Verwenden Sie nicht gezielt Parameterabkürzungen. Sie sind unzuverlässig und nicht abwärtskompatibel. Wenn einem Befehl neue Parameter hinzugefügt werden, die Ihre Abkürzungen durcheinanderbringen, werden Ihre Befehle nicht mehr funktionieren.
Wenn es sich bei dem Parameter um ein Argument mit einem Wert handelt, kann es zudem zu unerwartetem Verhalten bei Ihren Befehlen kommen. Wenn mehrere Instances eines Arguments mit einem Wert übergeben werden, wird nur die letzte Instance ausgeführt. Im folgenden Beispiel ist der Parameter
--filters
ein Argument mit einem Wert. Die Parameter--filters
und--filter
sind angegeben. Der Parameter--filter
ist eine Abkürzung von--filters
. Dies führt dazu, dass zwei Instances von--filters
angewendet werden und nur das letzte--filter
-Argument gilt.$
aws ec2 describe-vpc-peering-connections \
--filters
Name=tag:TagName,Values=VpcPeeringConnection \--filter
Name=status-code,Values=activeVergewissern Sie sich, dass Sie gültige Parameter verwenden, bevor Sie einen Befehl ausführen, um unerwartetes Verhalten zu vermeiden.
Fehler aufgrund einer Zugriffsverweigerung
- Mögliche Ursache: Die AWS CLI Programmdatei hat keine „Ausführen“ -Rechte
-
Stellen Sie unter Linux oder macOS sicher, dass das
aws
-Programm über Ausführungsberechtigungen für den aufrufenden Benutzer verfügt. In der Regel sind die Berechtigungen auf755
festgelegt.Um Ihrem Benutzer die Ausführungsberechtigung hinzuzufügen, führen Sie den folgenden Befehl aus und ersetzen Sie
~/.local/bin/aws
mit dem Pfad zum Programm auf Ihrem Computer.$
chmod +x
~/.local/bin/aws
- Mögliche Ursache: Ihre IAM Identität ist nicht berechtigt, den Vorgang auszuführen
-
Beispiel-Fehlertext:
$
aws s3 ls
An error occurred (AcessDenied) when calling the ListBuckets operation: Access denied.
Wenn Sie einen AWS CLI Befehl ausführen, werden AWS Vorgänge in Ihrem Namen ausgeführt, wobei Anmeldeinformationen verwendet werden, die Sie einem IAM Konto oder einer Rolle zuordnen. Die beigefügten Richtlinien müssen Ihnen die Erlaubnis erteilen, die API Aktionen aufzurufen, die den Befehlen entsprechen, die Sie mit dem ausführen AWS CLI.
Die meisten Befehle rufen eine einzelne Aktion mit einem Namen auf, der dem Befehlsnamen entspricht. Benutzerdefinierte Befehle wie
aws s3 sync
Call Multiple sind jedoch möglichAPIs. Mithilfe der--debug
Option können Sie sehen, welcher APIs Befehl aufgerufen wird.Wenn Sie sicher sind, dass der Benutzer oder die Rolle über die richtigen, per Richtlinie zugewiesenen Berechtigungen verfügt, stellen Sie sicher, dass Ihr AWS CLI Befehl die Anmeldeinformationen verwendet, die Sie erwarten. Im nächsten Abschnitt über Anmeldeinformationen können Sie überprüfen, ob AWS CLI es sich bei den verwendeten Anmeldeinformationen um die von Ihnen erwarteten Anmeldeinformationen handelt.
Informationen zum Zuweisen von IAM Berechtigungen finden Sie im IAMBenutzerhandbuch unter Überblick über die Zugriffsverwaltung: Berechtigungen und Richtlinien.
Ungültige Anmeldeinformationen und Schlüsselfehler
Beispiel-Fehlertext:
$
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.
- Mögliche Ursache: Der AWS CLI liest falsche Anmeldeinformationen oder liest sie von einem unerwarteten Ort
-
AWS CLI Möglicherweise liest er Anmeldeinformationen von einem anderen Ort als erwartet, oder Ihre Schlüsselpaarinformationen sind falsch. Sie können
aws configure list
ausführen, um anzugeben, welche Anmeldeinformationen verwendet werden.Das folgende Beispiel zeigt, wie Sie die Anmeldeinformationen prüfen, die für das Standardprofil verwendet werden.
$
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
Das folgende Beispiel zeigt, wie Sie die Anmeldeinformationen prüfen, die für das benannte Profil verwendet werden.
$
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
Bestätigen Sie die Schlüsselpaar-Informationen anhand Ihrer Dateien
config
undcredentials
. Weitere Informationen zu den Dateienconfig
undcredentials
finden Sie unter Einstellungen für die Konfiguration und die Anmeldeinformationsdatei in der AWS CLI. Weitere Informationen zu Anmeldeinformationen und Authentifizierung finden Sie unter Authentifizierungs- und Zugangsdaten für AWS CLI. - Mögliche Ursache: Die Uhr Ihres Computers ist nicht synchronisiert.
-
Wenn Sie gültige Anmeldeinformationen verwenden, ist möglicherweise die Uhr nicht synchronisiert. Führen Sie unter Linux oder macOS
date
aus, um die Zeit zu überprüfen.$
date
Wenn Ihre Systemuhr nicht innerhalb weniger Minuten korrigiert wird, synchronisieren Sie diese mit
ntpd
.$
sudo service ntpd stop
$
sudo ntpdate time.nist.gov
$
sudo service ntpd start
$
ntpstat
Verwenden Sie unter Windows die Optionen für Datum und Uhrzeit in der Systemsteuerung, um Ihre Systemuhr zu konfigurieren.
Fehler aufgrund einer nicht übereinstimmenden Signatur
Beispiel-Fehlertext:
$
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.
Wenn der einen Befehl AWS CLI ausführt, sendet er eine verschlüsselte Anfrage an die AWS Server, um die entsprechenden AWS Dienstoperationen auszuführen. Ihre Anmeldeinformationen (der Zugriffsschlüssel und der geheime Schlüssel) sind an der Verschlüsselung beteiligt und AWS ermöglichen die Authentifizierung der Person, die die Anfrage stellt. Es gibt mehrere Dinge, die den korrekten Vorgang dieses Prozesses folgendermaßen beeinträchtigen können.
- Mögliche Ursache: Ihre Uhr ist nicht mit den AWS Servern synchron
-
Zum Schutz vor Replay-Angriffen
kann die aktuelle Zeit während der Verschlüsselung/Entschlüsselung verwendet werden. Wenn die Zeit von Client und Server um mehr als den zulässigen Wert voneinander abweicht, schlägt der Prozess möglicherweise fehl und die Anfrage wird abgelehnt. Dies kann auch der Fall sein, wenn Sie einen Befehl in einer virtuellen Maschine ausführen, deren Uhr nicht mit der Uhr des Hostcomputers synchronisiert ist. Eine mögliche Ursache besteht darin, dass die virtuelle Maschine in den Ruhezustand versetzt wird und es nach dem erneuten Aktivieren einige Zeit dauert, die Uhr mit dem Hostcomputer zu synchronisieren. Führen Sie unter Linux oder macOS
date
aus, um die Zeit zu überprüfen.$
date
Wenn Ihre Systemuhr nicht innerhalb weniger Minuten korrigiert wird, synchronisieren Sie diese mit
ntpd
.$
sudo service ntpd stop
$
sudo ntpdate time.nist.gov
$
sudo service ntpd start
$
ntpstat
Verwenden Sie unter Windows die Optionen für Datum und Uhrzeit in der Systemsteuerung, um Ihre Systemuhr zu konfigurieren.
- Mögliche Ursache: Ihr Betriebssystem verarbeitet AWS Schlüssel, die bestimmte Sonderzeichen enthalten, falsch
-
Wenn Ihre AWS Schlüssel bestimmte Sonderzeichen wie,, oder enthalten
-
+
/
, verarbeiten einige Betriebssystemvarianten die Zeichenfolge nicht ordnungsgemäß und führen dazu%
, dass die Schlüsselzeichenfolge falsch interpretiert wird.Wenn Sie Ihre Schlüssel mit anderen Tools oder Skripten verarbeiten, z. B. mit Tools, die die Anmeldeinformationsdatei bei deren Erstellung auf einer neuen Instanz erstellen, können diese Tools und Skripten Sonderzeichen auf eigene Weise verarbeiten, sodass sie in etwas umgewandelt werden, das nicht AWS mehr erkannt wird.
Wir empfehlen, den geheimen Schlüssel neu zu generieren, um einen Schlüssel zu erhalten, der das Sonderzeichen nicht enthält.
SSLZertifikatsfehler
- Mögliche Ursache: Der vertraut dem Zertifikat Ihres Proxys AWS CLI nicht
-
Beispiel-Fehlertext:
$
aws s3 ls
[SSL: CERTIFICATE_ VERIFY_FAILED] certificate verify failed
Wenn Sie einen AWS CLI Befehl verwenden, erhalten Sie eine
[SSL: CERTIFICATE_ VERIFY_FAILED] certificate verify failed
Fehlermeldung. Dies liegt daran, dass Sie dem Zertifikat Ihres Proxys AWS CLI nicht vertrauen, z. B. weil das Zertifikat Ihres Proxys selbst signiert ist und Ihr Unternehmen als Zertifizierungsstelle (CA) festgelegt wurde. Dadurch wird verhindert, dass das AWS CLI CA-Stammzertifikat Ihres Unternehmens in der lokalen CA-Registrierung gefunden wird.Um dieses Problem zu beheben, geben Sie anhand der Einstellung der
.pem
ca_bundle
Konfigurationsdatei, der --ca-bundle Befehlszeilenoption oder derAWS_CA_BUNDLE
Umgebungsvariablen an, AWS CLI wo Ihre Unternehmensdatei zu finden ist. - Mögliche Ursache: Ihre Konfiguration zeigt nicht auf den richtigen Speicherort des CA-Stammzertifikats.
-
Beispiel-Fehlertext:
$
aws s3 ls
SSL validation failed for
regionname
[Errno 2] No such file or directoryDies liegt daran, dass der Speicherort der Bundle-Datei Ihrer Zertifizierungsstelle (Certification Authority, CA) in der AWS CLI falsch konfiguriert ist. Überprüfen Sie zur Behebung dieses Fehlers, an welchem Speicherort sich die
.pem
-Datei Ihres Unternehmens befindet, und aktualisieren Sie die AWS CLI -Konfiguration mithilfe der Konfigurationsdateieinstellungca_bundle
, der Befehlszeilenoption --ca-bundle oder der UmgebungsvariablenAWS_CA_BUNDLE
. - Mögliche Ursache: Ihre Konfiguration verwendet nicht die richtige AWS-Region
-
Beispiel-Fehlertext:
$
aws s3 ls
[SSL: CERTIFICATE_ VERIFY_FAILED] certificate verify failed
Fehler oder unerwartete Ergebnisse können auftreten, wenn eine für die von Ihnen angegebene nicht AWS-Service verfügbar ist AWS-Region oder wenn sich Ihre Ressourcen in einer anderen befinden AWS-Region. Fehlerbehandlungsschritte finden Sie unter Überprüfen Sie, ob AWS-Region Ihr AWS CLI Befehl verwendet.
- Mögliche Ursache: Ihre TLS Version muss aktualisiert werden
-
Beispiel-Fehlertext:
$
aws s3 ls
[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled
Die verwendet AWS-Service eine Version davonTLS, die nicht mit der TLS Version Ihres Geräts kompatibel ist. Um dieses Problem zu beheben, aktualisieren Sie auf eine unterstützte TLS Version. Weitere Informationen finden Sie unter Durchsetzung einer Mindestversion von TLS für AWS CLI.
Ungültige JSON Fehler
Beispiel-Fehlertext:
$
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}
Wenn Sie einen AWS CLI Befehl verwenden, erhalten Sie eine "Invalid JSON
" -Fehlermeldung. Dies ist normalerweise ein Fehler, der auftritt, wenn Sie einen Befehl mit einem erwarteten JSON Format eingeben und der Befehl dann AWS CLI nicht JSON richtig gelesen werden kann.
- Mögliche Ursache: Sie haben keinen gültigen Wert eingegeben, der JSON verwendet AWS CLI werden soll
-
Vergewissern Sie sich, dass Sie für Ihren Befehl eine gültige JSON Eingabe vorgenommen haben. Wir empfehlen die Verwendung eines JSON Validators, falls JSON Sie Probleme mit der Formatierung haben.
Für eine fortgeschrittenere JSON Verwendung in der Befehlszeile sollten Sie die Verwendung eines JSON Befehlszeilenprozessors in Betracht ziehen
jq
, z. B. um Zeichenketten zu erstellenJSON. Weitere Informationen dazujq
finden Sie im jq-Repositoryunter GitHub. - Mögliche Ursache: Die Angebotsregeln Ihres Terminals verhindern, dass gültige Dokumente JSON an die AWS CLI
-
Bevor der etwas von einem Befehl AWS CLI empfängt, verarbeitet Ihr Terminal den Befehl mit seinen eigenen Regeln für Anführungszeichen und Escape-Zeichen. Aufgrund der Formatierungsregeln eines Terminals kann ein Teil Ihres JSON Inhalts entfernt werden, bevor der Befehl an den übergeben wird. AWS CLI Achten Sie beim Formulieren von Befehlen darauf, die Anführungszeichenregeln des Terminals zu berücksichtigen.
Verwenden Sie zur Fehlerbehebung den
echo
-Befehl, um zu sehen, wie die Shell mit Ihren Parametern umgeht:$
echo {"ReadCapacityUnits":15,"WriteCapacityUnits":10}
ReadCapacityUnits:15 WriteCapacityUnits:10
$
echo '{"ReadCapacityUnits":15,"WriteCapacityUnits":10}'
{"ReadCapacityUnits":15,"WriteCapacityUnits":10}
Ändern Sie Ihren Befehl so lange, bis Ihr Befehl „Bis gültig“ zurückgegeben JSON wird.
Verwenden Sie für eine umfassendere Fehlerbehebung den
--debug
-Parameter, um die Debug-Protokolle anzuzeigen, da in diesen exakt zu sehen ist, was an die AWS CLIübergeben wurde:$
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']
Verwenden Sie die Angebotsregeln Ihres Terminals, um alle Probleme zu beheben, die Ihre JSON Eingabe beim Senden an die AWS CLI hat. Weitere Informationen zu Anführungszeichenregeln finden Sie unter Verwenden von Anführungszeichen und Literalen mit Zeichenketten in AWS CLI.
Anmerkung
Wenn Sie Probleme mit der JSON Gültigkeitsbeschaffung für haben, empfehlen wir AWS CLI, die Angebotsregeln eines Terminals für die JSON Dateneingabe zu umgehen, indem Sie Blobs verwenden, um Ihre JSON Daten direkt an das weiterzuleiten. AWS CLI Weitere Informationen zu Blobs finden Sie unter Blob.
Weitere Ressourcen
Weitere Hilfe bei Ihren AWS CLI Problemen erhalten Sie in der AWS CLI Community