Memecahkan masalah kesalahan untuk AWS CLI - AWS Command Line Interface

Dokumentasi ini AWS CLI hanya untuk Versi 1. Untuk dokumentasi yang terkait dengan Versi 2 AWS CLI, lihat Panduan Pengguna Versi 2.

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.

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.

Kembali ke atas

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:

Untuk informasi selengkapnya tentang bagaimana perintah tertentu harus disusun, lihat panduan AWS CLI referensi AWS CLI .

Kembali ke atas

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:

Konfirmasikan bahwa Anda menggunakan yang benar Wilayah AWS untuk sumber daya Anda.

Kembali ke atas

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 panduan AWS CLI referensi tersedia, pertama-tama konfirmasikan bahwa perintah Anda diformat dengan benar. Jika pemformatannya benar, maka kami sarankan Anda meningkatkan ke versi terbaru. AWS CLI Versi terbaru dari AWS CLI dirilis hampir setiap hari kerja. AWS Layanan, fitur, dan parameter baru diperkenalkan dalam versi baru AWS CLI. Satu-satunya cara untuk mendapatkan akses ke layanan, fitur, atau parameter baru tersebut adalah dengan meningkatkan ke versi yang dirilis setelah elemen itu pertama kali diperkenalkan.

Bagaimana Anda memperbarui versi Anda AWS CLI tergantung pada bagaimana Anda awalnya menginstalnya seperti yang dijelaskan dalam Menginstal, memperbarui, dan menghapus instalasi 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.

Kembali ke atas

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" } ] }

Kembali ke atas

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 aws historydi 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.

Kembali ke atas

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.

Kembali ke atas

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.

Kembali ke atas

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 mengenali PATH pembaruan apa pun.

Kembali ke atas

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, memperbarui, dan menghapus instalasi AWS CLI

Kembali ke atas

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 memiliki execute izin untuk folder yang diinstal. Jalankan perintah berikut dengan PATH ke AWS CLI instalasi Anda, untuk memberikan chmod izin ke AWS CLI:

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

Kembali ke atas

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 variabel PATH lingkungan sistem operasi Anda. Untuk menambahkan AWS CLI ke AndaPATH, gunakan instruksi berikut untuk sistem operasi Anda.

Linux and macOS
  1. Temukan skrip profil shell Anda di direktori pengguna Anda. Jika Anda tidak yakin shell mana yang Anda miliki, jalankanecho $SHELL.

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

    • Zsh.zshrc

    • Tcsh.tcshrc, .cshrc, atau .login

  2. Tambahkan perintah ekspor ke penulisan profil Anda. Perintah berikut menambahkan bin lokal Anda ke PATH variabel saat ini.

    export PATH=/usr/local/bin:$PATH
  3. Muat ulang profil yang diperbarui ke sesi Anda saat ini.

    $ source ~/.bash_profile
Windows
  1. Dalam Prompt Perintah Windows, gunakan where perintah dengan /R path parameter untuk menemukan lokasi aws file. Hasilnya mengembalikan semua folder yang berisiaws.

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

    Secara default, AWS CLI versi 2 terletak di:

    c:\Program Files\Amazon\AWSCLIV2\aws.exe
  2. Tekan tombol Windows dan masukkan environment variables.

  3. Dari daftar saran, pilih Edit variabel lingkungan untuk akun Anda.

  4. Pilih PATH, lalu pilih Edit.

  5. Tambahkan jalur yang Anda temukan di langkah pertama ke bidang Nilai variabel, misalnya,C:\Program Files\Amazon\AWSCLIV2\aws.exe.

  6. Pilih OK dua kali untuk menggunakan pengaturan baru.

  7. Tutup semua command prompt yang sedang berjalan dan buka kembali jendela command prompt.

Kembali ke atas

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 mengenali PATH pembaruan apa pun. Semua terminal terbuka harus ditutup, bukan hanya terminal aktif Anda.

Kembali ke atas

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.

Kembali ke atas

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 Anda PATH 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 penginstalan saat bermigrasi dari AWS CLI versi 1.

Kembali ke atas

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.

Kembali ke atas

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 menggunakan pip untuk menghapus instalannya. Untuk mengatasi ini, hapus instalan AWS CLI menggunakan metode yang sama yang Anda gunakan untuk menginstalnya.

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

  2. Tutup semua terminal yang telah Anda buka.

  3. 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,,, aptbrew, 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.

Kembali ke atas

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 create-change-setperintah 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-set

Ketika singkatan Anda bisa berupa beberapa perintah, parameter tidak akan dikenali sebagai singkatan.

Contoh create-change-setperintah 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-set
Awas

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. --filterParameter 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=active

Konfirmasikan bahwa Anda menggunakan parameter yang valid sebelum menjalankan perintah untuk mencegah perilaku yang tidak terduga.

Kembali ke atas

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

Kembali ke atas

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

Kembali ke atas

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 file config dan file Anda. Untuk informasi lebih lanjut tentang config dan credentials 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

Kembali ke atas

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.

Kembali ke atas

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.

Kembali ke atas

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.

Kembali ke atas

Tidak ada kesalahan yang ditemukan konsol Windows

Contoh teks kesalahan:

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

Saat Anda menggunakan AWS CLI perintah, Anda menerima “Tidak ada konsol Windows yang ditemukan. Apakah Anda menjalankan cmd.exe?” pesan kesalahan. Ini biasanya merupakan kesalahan yang terlihat untuk AWS CLI versi 1 jika Python yang prompt_toolkit Anda instal sudah usang. Untuk mengatasi masalah ini, instal versi terbaru dari prompt_toolkit situs web Python.

Kembali ke atas

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 file ca_bundle konfigurasi, opsi baris --ca-bundle perintah, atau variabel AWS_CA_BUNDLE lingkungan.

Kembali ke atas

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 directory

Ini 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 CLI ca_bundle konfigurasi dengan menggunakan pengaturan file konfigurasi, opsi baris --ca-bundle perintah, atau variabel AWS_CA_BUNDLE lingkungan.

Kembali ke atas

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.

Kembali ke atas

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.

Kembali ke atas

Kesalahan tidak valid JSON

Contoh teks kesalahan:

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

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, sepertijq, untuk membuat JSON string. Untuk informasi lebih lanjut tentangjq, lihat repositori jq di. GitHub

Kembali ke atas

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

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.

Kembali ke atas

Sumber daya tambahan

Untuk bantuan tambahan AWS CLI terkait masalah Anda, kunjungi AWS CLI komunitas di GitHubatau AWS re:Post komunitas.

Kembali ke atas