Fitur baru dan perubahan dalam AWS CLI versi 2 - AWS Command Line Interface

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Fitur baru dan perubahan dalam AWS CLI versi 2

Topik ini menjelaskan fitur baru dan perubahan perilaku antara AWS CLI versi 1 dan AWS CLI versi 2. Perubahan ini mungkin mengharuskan Anda memperbarui skrip atau perintah untuk mendapatkan perilaku yang sama di versi 2 seperti yang Anda lakukan di versi 1.

AWS CLI versi 2 fitur baru

AWS CLI Versi 2 adalah versi utama terbaru AWS CLI dan mendukung semua fitur terbaru. Beberapa fitur yang diperkenalkan di versi 2 tidak di-backport ke versi 1 dan Anda harus meningkatkan untuk mengakses fitur-fitur tersebut. Fitur-fitur ini mencakup hal-hal berikut:

Penerjemah Python tidak diperlukan

AWS CLI Versi 2 tidak memerlukan instalasi Python yang terpisah. Ini termasuk versi tertanam.

Penyihir

Anda dapat menggunakan wizard dengan AWS CLI versi 2. Wizard memandu Anda melalui pembuatan perintah tertentu.

IAMOtentikasi Pusat Identitas

Jika organisasi Anda menggunakan AWS IAM Identity Center (Pusat IAM Identitas), pengguna dapat masuk ke Active Directory, direktori Pusat IAM Identitas bawaan, atau IDP lain yang terhubung ke Pusat IAM Identitas. Kemudian, mereka dipetakan ke peran AWS Identity and Access Management (IAM) yang memungkinkan Anda menjalankan AWS CLI perintah.

Prompt otomatis

Saat diaktifkan, AWS CLI versi 2 dapat meminta Anda untuk perintah, parameter, dan sumber daya saat Anda menjalankan aws perintah.

Jalankan AWS CLI dari gambar Amazon ECR Public atau Docker resmi

Gambar Docker resmi untuk AWS CLI menyediakan isolasi, portabilitas, dan keamanan yang AWS secara langsung mendukung dan memelihara. Dengan cara ini, Anda dapat menggunakan AWS CLI versi 2 di lingkungan berbasis wadah tanpa harus mengelola instalasi sendiri.

Pager sisi klien

AWS CLI Versi 2 menyediakan penggunaan program pager sisi klien untuk output. Secara default, fitur ini diaktifkan dan mengembalikan semua output melalui program pager default sistem operasi Anda.

aws configure import

Impor .csv kredensil yang dihasilkan dari file. AWS Management Console.csvFile diimpor dengan nama profil yang cocok dengan nama IAM pengguna.

aws configure list-profiles

Daftar nama semua profil yang telah Anda konfigurasikan.

Format keluaran aliran YAMG

yaml-streamFormat yaml dan memanfaatkan YAMLformat sambil memberikan tampilan yang lebih responsif dari kumpulan data besar dengan mengalirkan data kepada Anda. Anda dapat mulai melihat dan menggunakan YAML data sebelum seluruh unduhan kueri.

ddbPerintah tingkat tinggi baru untuk DynamoDB

AWS CLI Versi 2 memiliki perintah Amazon ddb putddb selectDynamoDB tingkat tinggi dan. Perintah ini menyediakan antarmuka yang disederhanakan untuk menempatkan item dalam tabel DynamoDB dan mencari di tabel atau indeks DynamoDB.

aws logs tail

AWS CLI Versi 2 memiliki aws logs tail perintah khusus yang mengekor log untuk grup Amazon CloudWatch Logs. Secara default, perintah mengembalikan log dari semua aliran CloudWatch Log terkait selama sepuluh menit terakhir.

Menambahkan dukungan metadata untuk perintah tingkat tinggi s3

AWS CLI Versi 2 menambahkan --copy-props parameter ke s3 perintah tingkat tinggi. Dengan parameter ini, Anda dapat mengonfigurasi metadata dan tag tambahan untuk Amazon Simple Storage Service (Amazon S3).

AWS_REGION

AWS CLI Versi 2 memiliki variabel lingkungan AWS SDK -kompatibel yang disebutAWS_REGION. Variabel ini menentukan Wilayah AWS untuk mengirim permintaan ke. Ini mengesampingkan variabel AWS_DEFAULT_REGION lingkungan, yang hanya berlaku di. AWS CLI

Memecahkan perubahan antara AWS CLI versi 1 dan AWS CLI versi 2

Bagian ini menjelaskan semua perubahan perilaku antara AWS CLI versi 1 dan AWS CLI versi 2. Perubahan ini mungkin mengharuskan Anda memperbarui skrip atau perintah untuk mendapatkan perilaku yang sama di versi 2 seperti yang Anda lakukan di versi 1.

Variabel lingkungan ditambahkan untuk mengatur pengkodean file teks

Secara default, file teks untuk blob menggunakan pengkodean yang sama dengan lokal yang diinstal. Karena AWS CLI versi 2 menggunakan versi Python yang disematkan, variabel PYTHONUTF8 dan PYTHONIOENCODING lingkungan tidak didukung. Untuk mengatur pengkodean file teks agar berbeda dari lokal, gunakan variabel AWS_CLI_FILE_ENCODING lingkungan. Contoh berikut menetapkan AWS CLI untuk membuka file teks menggunakan UTF-8 pada Windows.

AWS_CLI_FILE_ENCODING=UTF-8

Untuk informasi selengkapnya, lihat Variabel lingkungan untuk mengkonfigurasi AWS CLI.

Parameter biner dilewatkan sebagai string yang dikodekan base64 secara default

Dalam AWS CLI, beberapa perintah memerlukan string base64 -encoded, sementara yang lain membutuhkan string byte -8 yang dikodekan. UTF Dalam AWS CLI versi 1, meneruskan data antara dua jenis string yang dikodekan sering memerlukan beberapa pemrosesan perantara. AWS CLI Versi 2 membuat penanganan parameter biner lebih konsisten, yang membantu meneruskan nilai dari satu perintah ke perintah lainnya dengan lebih andal.

Secara default, AWS CLI versi 2 melewati semua parameter input biner dan output biner sebagai string yang dikodekan base64 blobs (objek besar biner). Untuk informasi selengkapnya, lihat blob.

Untuk kembali ke perilaku AWS CLI versi 1, gunakan konfigurasi cli_binary_format file atau --cli-binary-format parameter.

Peningkatan penanganan Amazon S3 dari properti file dan tag untuk salinan multipart

Saat Anda menggunakan perintah AWS CLI versi 1 di aws s3 namespace untuk menyalin file dari satu lokasi bucket S3 ke lokasi bucket lainnya, dan operasi tersebut menggunakan salinan multipart, tidak ada properti file dari objek sumber yang disalin ke objek tujuan.

Secara default, perintah yang sesuai di AWS CLI versi 2 mentransfer semua tag dan beberapa properti dari sumber ke salinan tujuan. Dibandingkan dengan AWS CLI versi 1, ini dapat menghasilkan lebih banyak AWS API panggilan yang dilakukan ke titik akhir Amazon S3. Untuk mengubah perilaku default untuk s3 perintah di AWS CLI versi 2, gunakan --copy-props parameter.

Untuk informasi selengkapnya, lihat Properti file dan tag dalam salinan multipart.

Tidak ada pengambilan otomatis http:// atau https:// URLs untuk parameter

AWS CLI Versi 2 tidak melakukan GET operasi ketika nilai parameter dimulai dengan http:// atauhttps://, dan tidak menggunakan konten yang dikembalikan sebagai nilai parameter. Akibatnya, opsi baris perintah terkait cli_follow_urlparam dihapus dari AWS CLI versi 2.

Jika Anda perlu mengambil URL dan meneruskan URL konten ke nilai parameter, kami sarankan Anda menggunakan curl atau alat serupa untuk mengunduh konten URL ke file lokal. Kemudian, gunakan file:// sintaks untuk membaca isi file itu dan menggunakannya sebagai nilai parameter.

Misalnya, perintah berikut tidak lagi mencoba untuk mengambil isi halaman yang ditemukan di http://www.example.com dan meneruskan konten tersebut sebagai parameter. Sebaliknya, ia melewati string teks literal https://example.com sebagai parameter.

$ aws ssm put-parameter \ --value http://www.example.com \ --name prod.microservice1.db.secret \ --type String 2

Jika Anda perlu mengambil dan menggunakan konten web URL sebagai parameter, Anda dapat melakukan hal berikut di versi 2.

$ curl https://my.example.com/mypolicyfile.json -o mypolicyfile.json $ aws iam put-role-policy \ --policy-document file://./mypolicyfile.json \ --role-name MyRole \ --policy-name MyReadOnlyPolicy

Pada contoh sebelumnya, -o parameter memberitahu curl untuk menyimpan file di folder saat ini dengan nama yang sama dengan file sumber. Perintah kedua mengambil konten dari file yang diunduh dan meneruskan konten sebagai nilai. --policy-document

Pager digunakan untuk semua output secara default

Secara default, AWS CLI versi 2 mengembalikan semua output melalui program pager default sistem operasi Anda. Program ini adalah lessprogram di Linux atau macOS, dan moreprogram di Windows. Ini dapat membantu Anda menavigasi sejumlah besar output dari layanan dengan menampilkan output itu satu halaman pada satu waktu.

Anda dapat mengonfigurasi AWS CLI versi 2 untuk menggunakan program paging yang berbeda atau tidak sama sekali. Untuk informasi selengkapnya, lihat Pager sisi klien.

Nilai keluaran stempel waktu distandarisasi ke format 8601 ISO

Secara default, AWS CLI versi 2 mengembalikan semua nilai respons stempel waktu dalam format ISO8601. Di AWS CLI versi 1, perintah mengembalikan nilai stempel waktu dalam format apa pun yang dikembalikan oleh HTTP API respons, yang dapat bervariasi dari layanan ke layanan.

Untuk melihat stempel waktu dalam format yang dikembalikan oleh HTTP API respons, gunakan wire nilai dalam file Andaconfig. Untuk informasi selengkapnya, lihat cli_timestamp_format.

Peningkatan penanganan CloudFormation penerapan yang tidak menghasilkan perubahan

Secara default di AWS CLI versi 1, jika Anda menerapkan AWS CloudFormation template yang tidak menghasilkan perubahan, kode kesalahan akan AWS CLI dikembalikan. Ini menyebabkan masalah jika Anda tidak menganggap itu sebagai kesalahan dan Anda ingin skrip Anda berlanjut. Anda dapat mengatasi ini di AWS CLI versi 1 dengan menambahkan bendera-–no-fail-on-empty-changeset, yang kembali0.

Karena ini adalah kasus penggunaan umum, AWS CLI versi 2 default mengembalikan kode keluar yang berhasil 0 ketika tidak ada perubahan yang disebabkan oleh penerapan dan operasi mengembalikan set perubahan kosong.

Untuk kembali ke perilaku asli, tambahkan bendera--fail-on-empty-changeset.

Mengubah perilaku default untuk titik akhir Amazon S3 Regional untuk Wilayah us-east-1

Saat Anda mengonfigurasi AWS CLI versi 1 untuk menggunakan us-east-1 Wilayah, maka akan AWS CLI menggunakan s3.amazonaws.com titik akhir global yang dihosting secara fisik di us-east-1 Wilayah. AWS CLI Versi 2 menggunakan titik akhir Regional yang sebenarnya s3.us-east-1.amazonaws.com ketika Region tersebut ditentukan. Untuk memaksa AWS CLI versi 2 menggunakan titik akhir global, Anda dapat mengatur Region untuk aws-global perintah.

Mengubah perilaku default untuk titik AWS STS akhir Regional

Secara default, AWS CLI versi 2 mengirimkan semua AWS Security Token Service (AWS STS) API permintaan ke titik akhir Regional untuk saat ini dikonfigurasi Wilayah AWS.

Secara default, AWS CLI versi 1 mengirimkan AWS STS permintaan ke AWS STS titik akhir global. Anda dapat mengontrol perilaku default ini di versi 1 dengan menggunakan sts_regional_endpointspengaturan.

ecr get-logindihapus dan diganti dengan ecr get-login-password

AWS CLI Versi 2 menggantikan perintah aws ecr get-login dengan aws ecr get-login-password perintah yang meningkatkan integrasi otomatis dengan otentikasi kontainer.

aws ecr get-login-passwordPerintah mengurangi risiko mengekspos kredensialmu dalam daftar proses, riwayat shell, atau file log lainnya. Ini juga meningkatkan kompatibilitas dengan docker login perintah untuk otomatisasi yang lebih baik.

aws ecr get-login-passwordPerintah ini tersedia dalam AWS CLI versi 1.17.10 dan yang lebih baru, dan AWS CLI versi 2. aws ecr get-loginPerintah sebelumnya masih tersedia di AWS CLI versi 1 untuk kompatibilitas mundur.

Dengan aws ecr get-login-password perintah tersebut, Anda dapat mengganti kode berikut yang mengambil kata sandi.

$ (aws ecr get-login --no-include-email)

Untuk mengurangi risiko mengekspos kata sandi ke riwayat shell atau log, gunakan perintah contoh berikut sebagai gantinya. Dalam contoh ini, kata sandi disalurkan langsung ke docker login perintah, di mana ia ditetapkan ke parameter kata sandi dengan --password-stdin opsi.

$ aws ecr get-login-password | docker login --username AWS --password-stdin MY-REGISTRY-URL

Untuk informasi selengkapnya, lihat aws ecr get-login-passworddi Panduan Referensi AWS CLI versi 2.

AWS CLI dukungan versi 2 untuk plugin berubah

Dukungan plugin di AWS CLI versi 2 sepenuhnya sementara dan dimaksudkan untuk membantu pengguna bermigrasi dari AWS CLI versi 1 hingga antarmuka plugin yang stabil dan diperbarui dirilis. Tidak ada jaminan bahwa plugin tertentu atau bahkan antarmuka AWS CLI plugin akan didukung di versi masa depan AWS CLI versi 2. Jika Anda mengandalkan plugin, pastikan untuk mengunci ke versi tertentu dari AWS CLI dan menguji fungsionalitas plugin Anda ketika Anda melakukan upgrade.

Untuk mengaktifkan dukungan plugin, buat [plugins] bagian di bagian Anda~/.aws/config.

[plugins] cli_legacy_plugin_path = <path-to-plugins>/python3.7/site-packages <plugin-name> = <plugin-module>

Di [plugins] bagian ini, tentukan cli_legacy_plugin_path variabel dan atur nilainya ke jalur paket situs Python tempat modul plugin Anda berada. Kemudian, Anda dapat mengkonfigurasi plugin dengan memberikan nama untuk plugin (plugin-name) dan nama file modul Python (plugin-module) yang berisi kode sumber untuk plugin Anda. AWS CLI Memuat setiap plugin dengan mengimpor plugin-module dan memanggil awscli_initialize fungsinya.

Dukungan alias tersembunyi dihapus

AWS CLI versi 2 tidak lagi mendukung alias tersembunyi berikut yang didukung di versi 1.

Pada tabel berikut, kolom pertama menampilkan layanan, perintah, dan parameter yang berfungsi di semua versi, termasuk AWS CLI versi 2. Kolom kedua menampilkan alias yang tidak lagi berfungsi di AWS CLI versi 2.

Layanan kerja, perintah, dan parameter Alias usang
kognito-identitas -arns create-identity-pool open-id-connect-provider open-id-connect-provider-ar-ns
storagegateway mendeskripsikan kaset-kaset-arns tape-ar-ns
Storagegateway. describe-tape-archives.tape-arns tape-ar-ns
Storagegateway. describe-vtl-devices. vtl-device-arns vtl-device-ar-ns
Storagegateway. describe-cached-iscsi-volumes.volume-arns volume-ar-ns
Storagegateway. describe-stored-iscsi-volumes.volume-arns volume-ar-ns
route53domains.view-billing.start-time start
menyebarkan. create-deployment-group.ec2-tag-set ec-2-tag-set
menyebarkan. list-application-revisions.s3-ember s-3-ember
menyebarkan. list-application-revisions.s3-kunci-awalan awalan s-3-kunci-
menyebarkan. update-deployment-group.ec2-tag-set ec-2-tag-set
saya. enable-mfa-device.otentikasi-kode1 otentikasi-kode-1
saya. enable-mfa-device.otentikasi-kode2 otentikasi-kode-2
saya. resync-mfa-device.otentikasi-kode1 otentikasi-kode-1
saya. resync-mfa-device.otentikasi-kode2 otentikasi-kode-2
impor ekspor. get-shipping-label.jalan1 jalan-1
impor ekspor. get-shipping-label.jalan2 jalan-2
impor ekspor. get-shipping-label.jalan3 jalan-3
lambda.publish-version.code-sha256 kode-sha-256
lightsail. import-key-pair. public-key-base64 public-key-base-64
opsworks.register-volume.ec2-volume-id ec-2-volume id

Pengaturan file api_versions konfigurasi tidak didukung

AWS CLI Versi 2 tidak mendukung panggilan versi AWS layanan sebelumnya APIs dengan menggunakan pengaturan file api_versions konfigurasi. Semua AWS CLI perintah sekarang memanggil versi terbaru dari layanan APIs yang saat ini didukung oleh endpoint.

AWS CLI versi 2 hanya menggunakan Signature v4 untuk mengautentikasi permintaan Amazon S3

AWS CLI Versi 2 tidak mendukung algoritme tanda tangan sebelumnya untuk mengautentikasi permintaan layanan secara kriptografis yang dikirim ke titik akhir Amazon S3. Penandatanganan ini terjadi secara otomatis dengan setiap permintaan Amazon S3 dan hanya Proses Penandatanganan Versi Tanda Tangan 4 yang didukung. Anda tidak dapat mengonfigurasi versi tanda tangan. Semua bucket Amazon S3 presigned URLs sekarang hanya menggunakan SiGv4 dan memiliki durasi kedaluwarsa maksimum satu minggu.

AWS CLI versi 2 lebih konsisten dengan parameter paging

Dalam AWS CLI versi 1, jika Anda menentukan parameter pagination pada baris perintah, maka pagination otomatis dimatikan seperti yang diharapkan. Namun, ketika Anda menentukan parameter pagination dengan menggunakan file dengan ‐‐cli-input-json parameter, pagination otomatis tidak dimatikan, yang dapat menghasilkan output yang tidak terduga. AWS CLI Versi 2 mematikan pagination otomatis terlepas dari bagaimana Anda memberikan parameter.

AWS CLI versi 2 menyediakan kode pengembalian yang lebih konsisten di semua perintah

AWS CLI Versi 2 lebih konsisten di semua perintah dan mengembalikan kode keluar yang sesuai dengan AWS CLI versi 1 dengan benar. Kami juga menambahkan kode keluar 252, 253, dan 254. Untuk informasi selengkapnya tentang kode keluar, lihatMengembalikan kode dari AWS CLI.

Jika Anda memiliki ketergantungan pada bagaimana AWS CLI versi 1 menggunakan nilai kode pengembalian, kami sarankan untuk memeriksa kode keluar untuk memastikan bahwa Anda mendapatkan nilai yang Anda harapkan.