Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memecahkan masalah kesalahan untuk AWS CLI
Bagian ini mencakup kesalahan umum dan langkah-langkah pemecahan masalah yang harus diikuti untuk menyelesaikan masalah Anda. Kami menyarankan untuk mengikuti pemecahan masalah umum terlebih dahulu.
Daftar Isi
- Pemecahan masalah umum untuk dicoba terlebih dahulu
- Perintah tidak ditemukan kesalahan
- Perintah aws --version "" mengembalikan versi yang berbeda dari yang Anda instal
- Perintah aws --version "" mengembalikan versi setelah mencopot pemasangan AWS CLI
- AWS CLI Diproses perintah dengan nama parameter yang tidak lengkap
- Akses kesalahan ditolak
- Kredensial tidak valid dan kesalahan kunci
- Tanda tangan tidak cocok dengan kesalahan
- SSLkesalahan sertifikat
- Kesalahan tidak valid JSON
- Sumber daya tambahan
Pemecahan masalah umum untuk dicoba terlebih dahulu
Jika Anda menerima kesalahan atau mengalami masalah dengan AWS CLI, kami menyarankan tips umum berikut untuk membantu Anda memecahkan masalah.
Periksa pemformatan AWS CLI perintah Anda
Jika Anda menerima kesalahan yang menunjukkan bahwa perintah tidak ada, atau tidak mengenali parameter (Parameter validation failed
) yang menurut dokumentasi tersedia, maka perintah Anda mungkin salah diformat. Kami menyarankan Anda memeriksa hal-hal berikut:
-
Periksa perintah Anda untuk kesalahan ejaan dan pemformatan.
-
Konfirmasikan semua tanda kutip dan pelarian yang sesuai untuk terminal Anda benar dalam perintah Anda.
-
Hasilkan AWS CLI kerangka untuk mengkonfirmasi struktur perintah Anda.
-
UntukJSON, lihat pemecahan masalah tambahan untuk JSON nilai. Jika Anda mengalami masalah dengan JSON pemformatan pemrosesan terminal Anda, kami sarankan untuk melewati aturan kutipan terminal dengan menggunakan Blobs untuk meneruskan JSON data langsung ke file. AWS CLI
Untuk informasi selengkapnya tentang bagaimana perintah tertentu harus disusun, lihat versi 2 panduan referensi
Periksa AWS CLI perintah yang Wilayah AWS Anda gunakan
catatan
Anda harus menentukan Wilayah AWS saat menggunakan AWS CLI, baik secara eksplisit atau dengan menyetel Wilayah default. Untuk daftar semua Wilayah AWS yang dapat Anda tentukan, lihat AWS Wilayah dan Titik Akhir di Referensi Umum Amazon Web Services. Wilayah AWS Penunjuk yang digunakan oleh AWS CLI adalah nama yang sama dengan yang Anda lihat di AWS Management Console URLs dan titik akhir layanan.
Kesalahan atau hasil yang tidak terduga dapat terjadi jika Layanan AWS tidak tersedia untuk yang Anda tentukan Wilayah AWS atau sumber daya Anda berada di tempat yang berbeda Wilayah AWS. Dalam urutan prioritas, diatur dengan Wilayah AWS cara-cara berikut:
-
Opsi baris
--region
perintah. -
Variabel
AWS_REGION
lingkungan yang SDK kompatibel. -
Variabel
AWS_DEFAULT_REGION
lingkungan. -
Pengaturan regionprofil.
Konfirmasikan bahwa Anda menggunakan yang benar Wilayah AWS untuk sumber daya Anda.
Konfirmasikan bahwa Anda menjalankan versi terbaru AWS CLI
Jika Anda menerima kesalahan yang menunjukkan bahwa perintah tidak ada, atau tidak mengenali parameter yang menurut panduan referensi referensi AWS CLI versi 2
Bagaimana Anda memperbarui versi Anda AWS CLI tergantung pada bagaimana Anda awalnya menginstalnya seperti yang dijelaskan dalam Menginstal atau memperbarui ke versi terbaru AWS CLI.
Jika Anda menggunakan salah satu installer yang dibundel, Anda mungkin perlu menghapus instalasi yang ada sebelum mengunduh dan menginstal versi terbaru untuk sistem operasi Anda.
Gunakan --debug
opsi
Ketika AWS CLI melaporkan kesalahan yang tidak langsung Anda pahami, atau menghasilkan hasil yang tidak Anda harapkan, Anda bisa mendapatkan detail lebih lanjut tentang kesalahan dengan menjalankan perintah lagi dengan --debug
opsi. Dengan opsi ini, AWS CLI
output merinci tentang setiap langkah yang diperlukan untuk memproses perintah Anda. Detail dalam output dapat membantu Anda menentukan kapan kesalahan terjadi dan memberikan petunjuk tentang di mana itu dimulai.
Anda dapat mengirim output ke file teks untuk ditinjau nanti, atau untuk dikirim AWS Support ketika diminta.
Saat Anda menyertakan --debug
opsi, beberapa detailnya meliputi:
-
Mencari kredensi
-
Mengurai parameter yang disediakan
-
Membangun permintaan yang dikirim ke server AWS
-
Isi permintaan yang dikirim ke AWS
-
Isi respon mentah
-
Output yang diformat
Berikut adalah contoh perintah yang dijalankan dengan dan tanpa --debug
opsi.
$
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"
}
]
}
Aktifkan dan tinjau log riwayat AWS CLI perintah
Anda dapat mengaktifkan log riwayat AWS CLI perintah menggunakan pengaturan cli_history
file. Setelah mengaktifkan pengaturan ini, AWS CLI catatan sejarah aws
perintah.
Anda dapat mencantumkan riwayat Anda menggunakan aws history list
perintah, dan menggunakan command_ids yang dihasilkan dalam aws history show
perintah untuk detailnya. Untuk informasi lebih lanjut lihat di panduan AWS CLI referensi.
Saat Anda menyertakan --debug
opsi, beberapa detailnya meliputi:
-
APIpanggilan dilakukan ke botocore
-
Kode status
-
HTTPtanggapan
-
Header
-
Kode pengembalian
Anda dapat menggunakan informasi ini untuk mengonfirmasi data paramater dan API panggilan berperilaku seperti yang Anda harapkan, dan kemudian dapat menyimpulkan pada langkah apa dalam proses perintah Anda gagal.
Konfirmasikan bahwa Anda telah AWS CLI dikonfigurasi
Berbagai kesalahan dapat terjadi jika credentials
file config
dan IAM pengguna atau peran Anda tidak dikonfigurasi dengan benar. Untuk informasi selengkapnya tentang menyelesaikan kesalahan dengan config
dan credentials
file atau IAM pengguna atau peran Anda, lihat Akses kesalahan ditolak danKredensial tidak valid dan kesalahan kunci.
Perintah tidak ditemukan kesalahan
Kesalahan ini berarti bahwa sistem operasi tidak dapat menemukan AWS CLI perintah. Instalasi mungkin tidak lengkap atau memerlukan pembaruan.
- Kemungkinan penyebabnya: Anda mencoba menggunakan AWS CLI fitur yang lebih baru dari versi yang diinstal, atau memiliki format yang salah
-
Contoh teks kesalahan:
$
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 ....Berbagai kesalahan dapat terjadi jika perintah Anda diformat secara tidak benar atau Anda menggunakan versi sebelumnya sebelum fitur dirilis. Untuk informasi lebih lanjut tentang menyelesaikan kesalahan di sekitar dua masalah ini, lihat Periksa pemformatan AWS CLI perintah Anda danKonfirmasikan bahwa Anda menjalankan versi terbaru AWS CLI.
- Kemungkinan penyebabnya: Terminal perlu dimulai ulang setelah instalasi
-
Contoh teks kesalahan:
$
aws --version
command not found: aws
Jika
aws
perintah tidak dapat ditemukan setelah pertama kali menginstal atau memperbarui AWS CLI, Anda mungkin perlu me-restart terminal Anda untuk mengenaliPATH
pembaruan apa pun. - Kemungkinan penyebabnya: AWS CLI Tidak sepenuhnya diinstal
-
Contoh teks kesalahan:
$
aws --version
command not found: aws
Jika
aws
perintah tidak dapat ditemukan setelah pertama kali menginstal atau memperbarui AWS CLI, itu mungkin belum sepenuhnya diinstal. Coba instal ulang dengan mengikuti langkah-langkah untuk platform Anda. Menginstal atau memperbarui ke versi terbaru AWS CLI - Kemungkinan penyebabnya: AWS CLI Tidak memiliki izin (Linux)
-
Jika
aws
perintah tidak dapat ditemukan setelah pertama kali menginstal atau memperbarui AWS CLI di Linux, itu mungkin tidak memilikiexecute
izin untuk folder yang diinstal. Jalankan perintah berikut denganPATH
ke AWS CLI instalasi Anda, untuk memberikanchmod
izin ke AWS CLI:$
sudo chmod -R 755
/usr/local/aws-cli/
- Kemungkinan penyebabnya: Sistem operasi tidak
PATH
diperbarui selama instalasi -
Contoh teks kesalahan:
$
aws --version
command not found: aws
Anda mungkin perlu menambahkan
aws
executable ke variabelPATH
lingkungan sistem operasi Anda. Untuk menambahkan AWS CLI ke AndaPATH
, gunakan instruksi berikut untuk sistem operasi Anda.
Perintah aws --version
"" mengembalikan versi yang berbeda dari yang Anda instal
Terminal Anda mungkin mengembalikan yang berbeda PATH
AWS CLI dari yang Anda harapkan.
- Kemungkinan penyebabnya: Terminal perlu dimulai ulang setelah menginstal
-
Jika
aws
perintah menunjukkan versi yang salah, Anda mungkin perlu me-restart terminal Anda agar dapat mengenaliPATH
pembaruan apa pun. Semua terminal terbuka harus ditutup, bukan hanya terminal aktif Anda. - Kemungkinan penyebabnya: Sistem perlu dimulai ulang setelah menginstal
-
Jika
aws
perintah menunjukkan versi yang salah dan memulai ulang terminal tidak berfungsi, Anda mungkin perlu me-restart sistem Anda agar dapat mengenali pembaruan AndaPATH
. - Kemungkinan penyebabnya: Anda memiliki beberapa versi AWS CLI
-
Jika Anda memperbarui AWS CLI dan menggunakan metode penginstalan yang berbeda dari instalasi yang sudah ada sebelumnya, itu mungkin menyebabkan beberapa versi diinstal. Misalnya, jika di Linux atau macOS Anda gunakan
pip
untuk instalasi Anda saat ini, tetapi mencoba memperbarui menggunakan file.pkg
instal, ini dapat menyebabkan beberapa konflik terutama dengan AndaPATH
menunjuk ke versi lama.Untuk mengatasi ini, hapus semua versi AWS CLI dan lakukan instalasi bersih.
Setelah menghapus semua versi, ikuti petunjuk yang sesuai untuk sistem operasi Anda untuk menginstal versi yang Anda inginkan dari AWS CLI versi 1 atau AWS CLI versi 2.
catatan
Jika ini terjadi setelah Anda menginstal AWS CLI versi 2 dengan penginstalan AWS CLI versi 1 yang sudah ada sebelumnya, ikuti petunjuk migrasi di Petunjuk 1. Menginstal AWS CLI versi 2 dari AWS CLI versi 1
Perintah aws --version
"" mengembalikan versi setelah mencopot pemasangan AWS CLI
Ini sering terjadi ketika masih ada yang AWS CLI diinstal di suatu tempat di sistem Anda.
- Kemungkinan penyebabnya: Terminal perlu dimulai ulang setelah mencopot pemasangan
-
Jika
aws --version
perintah masih berfungsi, Anda mungkin perlu me-restart terminal Anda agar dapat mengenali pembaruan terminal apa pun. - Kemungkinan penyebabnya: Anda memiliki beberapa versi AWS CLI pada sistem Anda, atau tidak menggunakan metode uninstall yang sama dengan yang Anda gunakan untuk menginstal AWS CLI
-
AWS CLI Mungkin tidak dihapus dengan benar jika Anda menghapus instalasi AWS CLI menggunakan metode yang berbeda dari yang Anda gunakan untuk menginstalnya, atau jika Anda menginstal beberapa versi. Misalnya, jika Anda menggunakan
pip
untuk instalasi Anda saat ini, Anda harus menggunakanpip
untuk menghapus instalannya. Untuk mengatasi ini, hapus instalan AWS CLI menggunakan metode yang sama yang Anda gunakan untuk menginstalnya.-
4. Ikuti instruksi yang sesuai untuk sistem operasi Anda dan metode instalasi asli Anda untuk menghapus instalasi AWS CLI versi 1 dan AWS CLI versi 2.
-
Tutup semua terminal yang telah Anda buka.
-
Buka terminal pilihan Anda, masukkan perintah berikut dan konfirmasikan bahwa tidak ada versi yang dikembalikan.
$
aws --version
command not found: aws
Jika Anda masih memiliki versi yang tercantum dalam output, kemungkinan besar diinstal menggunakan metode yang berbeda atau ada beberapa versi. AWS CLI Jika Anda tidak tahu metode mana yang Anda instal AWS CLI, ikuti petunjuk untuk setiap metode uninstall untuk AWS CLI versi 1 dan AWS CLI versi 2 yang sesuai dengan sistem operasi Anda sampai tidak ada output versi yang diterima.
catatan
Jika Anda menggunakan manajer paket untuk menginstal AWS CLI (
pip
,,,apt
brew
, dll.), Anda harus menggunakan manajer paket yang sama untuk menghapusnya. Pastikan untuk mengikuti instruksi yang diberikan oleh manajer paket tentang cara menghapus semua versi paket.
-
AWS CLI Diproses perintah dengan nama parameter yang tidak lengkap
- Kemungkinan penyebabnya: Anda menggunakan singkatan AWS CLI parameter yang diakui
-
Karena AWS CLI dibangun menggunakan Python, AWS CLI menggunakan
argparse
pustaka Python, termasuk argumen.allow_abbrev
Singkatan parameter dikenali oleh AWS CLI dan diproses. Contoh perintah berikut mengubah nama CloudFormation stack. Parameter
--change-set-n
diakui sebagai singkatan dari--change-set-name
, dan AWS CLI memproses perintah.$
aws cloudformation create-change-set --stack-name my-stack
--change-set-n
my-change-setKetika singkatan Anda bisa berupa beberapa perintah, parameter tidak akan dikenali sebagai singkatan.
Contoh perintah berikut mengubah nama CloudFormation stack. Parameter tidak
--change-set-
dikenali sebagai singkatan, karena ada beberapa parameter yang bisa menjadi singkatan dari, seperti--change-set-name
dan--change-set-type
. Oleh karena itu AWS CLI tidak memproses perintah.$
aws cloudformation create-change-set --stack-name my-stack
--change-set-
my-change-setAwas
Jangan sengaja menggunakan singkatan parameter. Mereka tidak dapat diandalkan dan tidak kompatibel ke belakang. Jika ada parameter baru yang ditambahkan ke perintah yang membingungkan singkatan Anda, itu akan merusak perintah Anda.
Selain itu, jika parameter adalah argumen nilai tunggal, itu dapat menyebabkan perilaku tak terduga dengan perintah Anda. Jika beberapa contoh argumen nilai tunggal diteruskan, hanya contoh terakhir yang akan berjalan. Dalam contoh berikut, parameter
--filters
adalah argumen bernilai tunggal. Parameter--filters
dan--filter
ditentukan.--filter
Parameter adalah singkatan dari--filters
. Ini menyebabkan dua contoh--filters
diterapkan dan hanya--filter
argumen terakhir yang berlaku.$
aws ec2 describe-vpc-peering-connections \
--filters
Name=tag:TagName,Values=VpcPeeringConnection \--filter
Name=status-code,Values=activeKonfirmasikan bahwa Anda menggunakan parameter yang valid sebelum menjalankan perintah untuk mencegah perilaku yang tidak terduga.
Akses kesalahan ditolak
- Kemungkinan penyebabnya: File AWS CLI program tidak memiliki izin “jalankan”
-
Di Linux atau macOS, pastikan bahwa
aws
program telah menjalankan izin untuk pengguna yang menelepon. Biasanya, izin diatur ke755
.Untuk menambahkan izin jalankan bagi pengguna Anda, jalankan perintah berikut, ganti
~/.local/bin/aws
dengan jalur ke program di komputer Anda.$
chmod +x
~/.local/bin/aws
- Kemungkinan penyebabnya: IAM Identitas Anda tidak memiliki izin untuk melakukan operasi
-
Contoh teks kesalahan:
$
aws s3 ls
An error occurred (AcessDenied) when calling the ListBuckets operation: Access denied.
Saat Anda menjalankan AWS CLI perintah, AWS operasi dilakukan atas nama Anda, menggunakan kredensil yang mengaitkan Anda dengan IAM akun atau peran. Kebijakan yang dilampirkan harus memberi Anda izin untuk memanggil API tindakan yang sesuai dengan perintah yang Anda jalankan dengan AWS CLI.
Sebagian besar perintah memanggil satu tindakan dengan nama yang cocok dengan nama perintah. Namun, perintah khusus seperti
aws s3 sync
memanggil beberapaAPIs. Anda dapat melihat perintah mana APIs yang dipanggil dengan menggunakan--debug
opsi.Jika Anda yakin bahwa pengguna atau peran memiliki izin yang tepat yang ditetapkan oleh kebijakan, pastikan bahwa AWS CLI perintah Anda menggunakan kredensional yang Anda harapkan. Lihat bagian selanjutnya tentang kredensil untuk memverifikasi bahwa kredensil yang digunakan AWS CLI adalah yang Anda harapkan.
Untuk informasi tentang menetapkan IAM izin, lihat Ringkasan Manajemen Akses: Izin dan Kebijakan di Panduan Pengguna. IAM
Kredensial tidak valid dan kesalahan kunci
Contoh teks kesalahan:
$
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.
- Kemungkinan penyebabnya: Membaca kredensil yang salah atau dari lokasi yang tidak terduga AWS CLI
-
AWS CLI Mungkin membaca kredensil dari lokasi yang berbeda dari yang Anda harapkan, atau informasi key pair Anda salah. Anda dapat menjalankan
aws configure list
untuk mengonfirmasi kredensional mana yang digunakan.Contoh berikut menunjukkan cara memeriksa kredensil yang digunakan untuk profil default.
$
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
Contoh berikut menunjukkan cara memeriksa kredensil profil bernama.
$
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
Untuk mengonfirmasi detail key pair Anda, periksa
credentials
fileconfig
dan file Anda. Untuk informasi lebih lanjut tentangconfig
dancredentials
file, lihatKonfigurasi dan pengaturan file kredensi di AWS CLI. Untuk informasi selengkapnya tentang kredensil dan otentikasi, termasuk prioritas kredensil, lihat. Otentikasi dan akses kredensional untuk AWS CLI - Kemungkinan penyebabnya: Jam komputer Anda tidak sinkron
-
Jika Anda menggunakan kredensi yang valid, jam Anda mungkin tidak sinkron. Di Linux atau macOS, jalankan
date
untuk memeriksa waktu.$
date
Jika jam sistem Anda tidak benar dalam beberapa menit, gunakan
ntpd
untuk menyinkronkannya.$
sudo service ntpd stop
$
sudo ntpdate time.nist.gov
$
sudo service ntpd start
$
ntpstat
Di Windows, gunakan opsi tanggal dan waktu di Control Panel untuk mengonfigurasi jam sistem Anda.
Tanda tangan tidak cocok dengan kesalahan
Contoh teks kesalahan:
$
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.
Ketika AWS CLI menjalankan perintah, ia mengirimkan permintaan terenkripsi ke AWS server untuk melakukan operasi AWS layanan yang sesuai. Kredensi Anda (kunci akses dan kunci rahasia) terlibat dalam enkripsi dan memungkinkan AWS untuk mengautentikasi orang yang membuat permintaan. Ada beberapa hal yang dapat mengganggu operasi yang benar dari proses ini, sebagai berikut.
- Kemungkinan penyebabnya: Jam Anda tidak sinkron dengan AWS server
-
Untuk membantu melindungi dari serangan replay
, waktu saat ini dapat digunakan selama proses enkripsi/dekripsi. Jika waktu klien dan server tidak setuju dengan lebih dari jumlah yang diizinkan, proses dapat gagal dan permintaan ditolak. Ini juga dapat terjadi ketika Anda menjalankan perintah di mesin virtual yang jamnya tidak sinkron dengan jam mesin host. Salah satu kemungkinan penyebabnya adalah ketika mesin virtual hibernasi dan membutuhkan waktu setelah bangun untuk menyinkronkan jam dengan mesin host. Di Linux atau macOS, jalankan
date
untuk memeriksa waktu.$
date
Jika jam sistem Anda tidak benar dalam beberapa menit, gunakan
ntpd
untuk menyinkronkannya.$
sudo service ntpd stop
$
sudo ntpdate time.nist.gov
$
sudo service ntpd start
$
ntpstat
Di Windows, gunakan opsi tanggal dan waktu di Control Panel untuk mengonfigurasi jam sistem Anda.
- Kemungkinan penyebabnya: Sistem operasi Anda salah menangani AWS kunci yang berisi karakter khusus tertentu
-
Jika AWS kunci Anda menyertakan karakter khusus tertentu, seperti
-
,,+
, atau/
%
, beberapa varian sistem operasi memproses string secara tidak benar dan menyebabkan string kunci ditafsirkan secara tidak benar.Jika Anda memproses kunci Anda menggunakan alat atau skrip lain, seperti alat yang membangun file kredensional pada instance baru sebagai bagian dari pembuatannya, alat dan skrip tersebut mungkin memiliki penanganan karakter khusus sendiri yang menyebabkan mereka diubah menjadi sesuatu yang AWS tidak lagi dikenali.
Kami menyarankan untuk meregenerasi kunci rahasia untuk mendapatkan kunci yang tidak menyertakan karakter khusus yang menyebabkan masalah.
SSLkesalahan sertifikat
- Kemungkinan penyebabnya: AWS CLI Tidak mempercayai sertifikat proxy Anda
-
Contoh teks kesalahan:
$
aws s3 ls
[SSL: CERTIFICATE_ VERIFY_FAILED] certificate verify failed
Saat Anda menggunakan AWS CLI perintah, Anda menerima pesan
[SSL: CERTIFICATE_ VERIFY_FAILED] certificate verify failed
kesalahan. Hal ini disebabkan oleh AWS CLI tidak mempercayai sertifikat proxy Anda karena faktor-faktor seperti sertifikat proxy Anda ditandatangani sendiri, dengan perusahaan Anda ditetapkan sebagai Otoritas Sertifikasi (CA). Ini mencegah AWS CLI dari menemukan sertifikat akar CA perusahaan Anda di registri CA lokal.Untuk memperbaikinya, instruksikan AWS CLI di mana menemukan
.pem
file perusahaan Anda menggunakan pengaturan fileca_bundle
konfigurasi, opsi baris --ca-bundle perintah, atau variabelAWS_CA_BUNDLE
lingkungan. - Kemungkinan penyebabnya: Konfigurasi Anda tidak menunjuk ke lokasi sertifikat root CA yang benar
-
Contoh teks kesalahan:
$
aws s3 ls
SSL validation failed for
regionname
[Errno 2] No such file or directoryIni disebabkan oleh lokasi file bundel Otoritas Sertifikasi (CA) Anda dikonfigurasi secara tidak benar di file AWS CLI. Untuk memperbaikinya, konfirmasikan di mana
.pem
file perusahaan Anda berada dan perbarui AWS CLIca_bundle
konfigurasi dengan menggunakan pengaturan file konfigurasi, opsi baris --ca-bundle perintah, atau variabelAWS_CA_BUNDLE
lingkungan. - Kemungkinan penyebabnya: Konfigurasi Anda tidak menggunakan yang benar Wilayah AWS
-
Contoh teks kesalahan:
$
aws s3 ls
[SSL: CERTIFICATE_ VERIFY_FAILED] certificate verify failed
Kesalahan atau hasil yang tidak terduga dapat terjadi jika Layanan AWS tidak tersedia untuk yang Anda tentukan Wilayah AWS atau sumber daya Anda berada di tempat yang berbeda Wilayah AWS. Untuk langkah-langkah pemecahan masalah, lihat Periksa AWS CLI perintah yang Wilayah AWS Anda gunakan.
- Kemungkinan penyebabnya: TLS Versi Anda perlu diperbarui
-
Contoh teks kesalahan:
$
aws s3 ls
[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled
Menggunakan versi TLS yang tidak kompatibel dengan TLS versi perangkat Anda. Layanan AWS Untuk mengatasi masalah ini, perbarui ke TLS versi yang didukung. Untuk informasi selengkapnya, lihat Menegakkan versi minimum TLS untuk AWS CLI.
Kesalahan tidak valid JSON
Contoh teks kesalahan:
$
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}
Saat Anda menggunakan AWS CLI perintah, Anda menerima pesan kesalahan Invalid JSON
"”. Ini biasanya merupakan kesalahan yang terlihat ketika Anda memasukkan perintah dengan JSON format yang diharapkan dan AWS CLI tidak dapat membaca Anda JSON dengan benar.
- Kemungkinan penyebabnya: Anda tidak memasukkan valid JSON AWS CLI untuk digunakan
-
Konfirmasikan bahwa Anda telah JSON masuk valid untuk perintah Anda. Kami menyarankan menggunakan JSON validator untuk JSON Anda mengalami masalah dalam memformat.
Untuk JSON penggunaan yang lebih maju di baris perintah, pertimbangkan untuk menggunakan JSON prosesor baris perintah, seperti
jq
, untuk membuat JSON string. Untuk informasi lebih lanjut tentangjq
, lihat repositori jqdi. GitHub - Kemungkinan penyebabnya: Aturan kutipan terminal Anda JSON mencegah pengiriman valid ke AWS CLI
-
Sebelum AWS CLI menerima sesuatu dari perintah, terminal Anda memproses perintah menggunakan aturan kutipan dan pelolosan itu sendiri. Karena aturan pemformatan terminal, beberapa JSON konten Anda mungkin dilucuti sebelum perintah diteruskan ke file. AWS CLI Saat merumuskan perintah, pastikan untuk menggunakan aturan kutipan terminal Anda.
Untuk memecahkan masalah, gunakan
echo
perintah untuk melihat bagaimana shell menangani parameter Anda:$
echo {"ReadCapacityUnits":15,"WriteCapacityUnits":10}
ReadCapacityUnits:15 WriteCapacityUnits:10
$
echo '{"ReadCapacityUnits":15,"WriteCapacityUnits":10}'
{"ReadCapacityUnits":15,"WriteCapacityUnits":10}
Ubah perintah Anda hingga valid JSON dikembalikan.
Untuk pemecahan masalah yang lebih mendalam, gunakan
--debug
parameter untuk melihat log debug karena akan menampilkan persis apa yang diteruskan ke: 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']
Gunakan aturan kutipan terminal Anda untuk memperbaiki masalah apa pun yang dimiliki JSON input Anda saat dikirim ke file. AWS CLI Untuk informasi lebih lanjut tentang aturan kutipan, lihatMenggunakan tanda kutip dan literal dengan string di AWS CLI.
catatan
Jika Anda mengalami masalah dengan valid JSON ke AWS CLI, kami sarankan untuk melewati aturan kutipan terminal untuk input JSON data dengan menggunakan Blobs untuk meneruskan JSON data Anda langsung ke file. AWS CLI Untuk informasi lebih lanjut tentang Blobs, lihatblob.
Sumber daya tambahan
Untuk bantuan tambahan AWS CLI terkait masalah Anda, kunjungi AWS CLI komunitas