Topik ini menjelaskan cara melakukan migrasi dari versi lama Alibaba Cloud CLI (sebelum 3.3.0) ke versi berbasis plugin.
Panduan ini ditujukan bagi pengguna Alibaba Cloud CLI versi sebelum 3.3.0. Jika versi CLI Anda adalah 3.3.0 atau lebih baru—yang dapat Anda periksa dengan menjalankan aliyun version—Anda sudah menggunakan versi berbasis plugin dan tidak perlu melakukan migrasi.
Perbedaan antara versi berbasis plugin dan versi lama
Versi 3.3.0 memperkenalkan arsitektur plugin. Mulai dari versi ini, CLI menjalankan perintah layanan cloud melalui plugin. Versi sebelum 3.3.0 disebut sebagai versi "lama" di seluruh topik ini.
CLI versi lama merupakan proxy passthrough OpenAPI: nama perintah langsung menggunakan nama tindakan API (seperti DescribeInstances), dan parameter sesuai dengan parameter API (seperti --RegionId). Pada CLI berbasis plugin, setiap layanan cloud menyediakan perintah melalui plugin independen. Kedua versi menjalankan operasi layanan cloud yang sama, tetapi berbeda dalam nama perintah, nama parameter, dan format output.
Kompatibilitas mundur: Setelah Anda meningkatkan ke versi 3.3.0 atau lebih baru, sintaks perintah lama tetap berfungsi. Anda dapat melakukan migrasi skrip ke perintah berbasis plugin sesuai kecepatan Anda—tidak perlu menulis ulang semuanya sekaligus.
Contoh perbandingan
Menggunakan API DescribeRegions sebagai contoh, perintah berbasis plugin adalah:
aliyun ecs describe-regions --accept-language zh-CN
Perintah lama adalah:
aliyun ecs DescribeRegions --AcceptLanguage zh-CN
Dalam contoh ini, satu-satunya perbedaan adalah konvensi penamaan. Namun, untuk perintah yang lebih kompleks, versi berbasis plugin mungkin sepenuhnya mendesain ulang nama parameternya. Misalnya, beberapa perintah menggunakan --biz-region-id alih-alih --region-id, yang bukan sekadar konversi huruf dari --RegionId versi lama. Saat melakukan migrasi, selalu periksa nama parameter yang benar dengan menjalankan <command> --help atau mencari di OpenAPI Explorer.
Perbedaan utama
|
Aspek |
Lama (< 3.3.0) |
Berbasis plugin (≥ 3.3.0) |
|
Output bantuan |
Dibuat otomatis dari metadata; hanya mencantumkan nama parameter |
Dibangun ke dalam setiap plugin; mencakup rentang nilai dan contoh penggunaan |
|
Pembaruan layanan |
Tergantung pada rilis inti CLI; adopsi fitur layanan cloud baru lebih lambat |
Plugin diperbarui secara independen; adopsi fitur layanan cloud baru lebih cepat |
|
Pembaruan plugin |
Memerlukan peningkatan seluruh CLI |
Plugin individual diperbarui secara independen tanpa memengaruhi layanan lain |
|
Nama perintah |
Nama tindakan API ( |
Gaya kebab-case terpadu ( |
|
Nama parameter |
Nama parameter API; gaya penulisan bervariasi ( |
Gaya kebab-case terpadu ( |
Periksa versi saat ini
Jalankan perintah berikut untuk memeriksa nomor versi Anda. Jika versinya 3.3.0 atau lebih baru, CLI Anda mendukung perintah berbasis plugin. Jika versinya sebelum 3.3.0, Anda harus meningkatkan CLI terlebih dahulu.
aliyun version
Untuk memeriksa apakah perintah tertentu menggunakan versi berbasis plugin atau versi lama, jalankan aliyun <command> <sub-command> --help:
-
Versi berbasis plugin: Output bantuan mencakup bagian parameter global, dan nama parameter biasanya menggunakan gaya kebab-case (misalnya,
--region-id). -
Versi lama: Output bantuan hanya mencakup bagian parameter, dan nama parameter biasanya menggunakan gaya PascalCase (misalnya,
--RegionId).
Temukan sintaks perintah berbasis plugin
Perintah berbasis plugin bukan sekadar penggantian nama perintah lama—Anda tidak dapat melakukan migrasi hanya dengan mengubah kapitalisasi huruf. Gunakan metode berikut untuk menemukan padanan berbasis plugin dari perintah lama.
Cari menggunakan OpenAPI Explorer
Saat Anda mengetahui nama perintah lama (yang merupakan nama tindakan API), ini adalah pendekatan paling langsung:
-
Buka OpenAPI Explorer.
-
Di kotak pencarian, masukkan nama perintah lama (misalnya,
DescribeInstances). Hasil pencarian akan menampilkan daftar API yang sesuai. -
Klik API target untuk membuka halaman detailnya, isi nilai parameter yang diperlukan, lalu beralih ke tab CLI Example di sebelah kanan.
-
Perintah berbasis plugin ditampilkan di bawah CLI Style (New), sedangkan perintah lama ditampilkan di bawah API Native Style (Old). Salin perintah baru untuk menggantikan perintah lama di skrip Anda.
Beberapa produk cloud memiliki beberapa versi API. CLI berbasis plugin menggunakan parameter --api-version untuk menentukan versi API yang akan dipanggil. Saat membandingkan perintah baru dan lama di OpenAPI Explorer, pastikan memilih versi API yang sesuai dengan versi yang sedang Anda gunakan.
Jelajahi halaman utama CLI
Halaman utama CLI di OpenAPI Explorer mencantumkan semua perintah berbasis plugin yang didukung, dikelompokkan berdasarkan layanan cloud, lengkap dengan deskripsi parameternya.
Temukan perintah dengan --help
Setelah menginstal plugin layanan cloud, gunakan --help di setiap tingkat untuk menjelajahi perintah dan parameter yang tersedia. Misalnya, untuk melihat semua perintah plugin ECS:
aliyun ecs --help
Untuk melihat penggunaan dan parameter perintah tertentu:
aliyun ecs describe-instances --help
Kueri menggunakan CLI Skills
Kunjungi CLI Skills, instal skill tersebut, lalu jelaskan kebutuhan Anda dalam bahasa alami melalui agen untuk mendapatkan perintah berbasis plugin yang sesuai.
Lakukan migrasi
Langkah 1: Tingkatkan CLI
Periksa versi saat ini:
aliyun version
Jika versinya sebelum 3.3.0, lihat Instal dan perbarui Alibaba Cloud CLI untuk melakukan peningkatan. Anda tidak perlu menguninstal versi lama—konfigurasi kredensial yang ada (~/.aliyun/config.json) tidak terpengaruh.
Setelah ditingkatkan, perintah lama tetap berfungsi dan skrip yang ada tidak terpengaruh. Dukungan fitur baru, pembaruan, dan perbaikan keamanan hanya tersedia di versi berbasis plugin.
Langkah 2: Instal plugin
Instal plugin layanan cloud yang Anda butuhkan:
# Instal satu plugin
aliyun plugin install --name ecs
# Instal beberapa plugin
aliyun plugin install --names ecs oss vpc
Atau, aktifkan instalasi otomatis melalui variabel lingkungan. Saat Anda menjalankan perintah berbasis plugin yang plugin-nya belum terinstal, CLI akan mengunduh dan menginstalnya secara otomatis:
export ALIBABA_CLOUD_CLI_PLUGIN_AUTO_INSTALL=true
export hanya berlaku untuk sesi shell saat ini. Untuk membuat pengaturan ini permanen, tambahkan perintah tersebut ke file konfigurasi shell Anda:
-
Bash:
~/.bashrc -
Zsh:
~/.zshrc
Setelah mengedit, jalankan source ~/.bashrc (atau source ~/.zshrc) untuk menerapkan perubahan.
Langkah 3: Verifikasi perintah
Jalankan perintah berbasis plugin untuk memverifikasi bahwa semuanya berfungsi:
aliyun ecs describe-regions
Daftar JSON wilayah dalam output mengonfirmasi bahwa CLI berbasis plugin berfungsi dengan benar.
Langkah 4: Perbarui skrip Anda
Gantilah secara bertahap perintah lama di skrip Anda dengan sintaks berbasis plugin:
-
Identifikasi perintah lama di skrip Anda. Ciri umumnya adalah argumen kedua menggunakan PascalCase (misalnya,
aliyun ecs DescribeInstances). -
Cari nama perintah lama di OpenAPI Explorer untuk menemukan padanan berbasis plugin-nya.
-
Ganti perintah lama dengan padanan berbasis plugin, dan perbarui nama parameter yang sesuai.
-
Uji skrip yang telah diperbarui.
Perintah lama tetap berfungsi di versi baru, sehingga Anda dapat melakukan migrasi secara bertahap berdasarkan prioritas.
Nama bidang di dalam nilai parameter JSON tidak perlu dikonversi. Nama bidang ini ditentukan oleh API dan tidak bergantung pada konvensi penamaan parameter CLI.
Kasus khusus
Pipeline CI/CD
Di lingkungan non-interaktif, CLI tidak akan menampilkan prompt untuk instalasi plugin. Tangani hal ini dengan salah satu cara berikut:
-
Pra-instal plugin di skrip pipeline Anda:
aliyun plugin install --names ecs oss vpc -
Atau, atur variabel lingkungan untuk mengaktifkan instalasi otomatis:
export ALIBABA_CLOUD_CLI_PLUGIN_AUTO_INSTALL=true
Kami menyarankan menambahkan variabel lingkungan tersebut ke konfigurasi lingkungan global pipeline Anda (seperti blok environment di Jenkinsfile atau bagian env di GitHub Actions) agar berlaku untuk setiap build.
Skrip penguraian output
Output JSON dari perintah berbasis plugin mungkin berbeda dari versi lama. CLI lama mengembalikan tanggapan API mentah, sedangkan versi berbasis plugin mungkin memproses output tersebut. Jika skrip Anda menggunakan jq, grep, atau alat lain untuk mengurai output CLI, verifikasi format output setelah mengganti perintah.
Migrasi perintah kompleks
Perintah dengan parameter kompleks merupakan skenario paling rawan kesalahan selama migrasi.
Perintah dengan parameter JSON kompleks
Lama:
aliyun slb AddBackendServers \
--LoadBalancerId lb-xxx \
--BackendServers '[{"ServerId":"i-aaa","Weight":100},{"ServerId":"i-bbb","Weight":80}]'
Berbasis plugin:
aliyun slb add-backend-servers \
--load-balancer-id lb-xxx \
--backend-servers '[{"ServerId":"i-aaa","Weight":100},{"ServerId":"i-bbb","Weight":80}]'
Penyampaian parameter heredoc multiline
Untuk parameter JSON panjang, gunakan heredoc agar lebih mudah dibaca:
aliyun ecs run-instances \
--region cn-hangzhou \
--instance-type ecs.g7.large \
--image-id ubuntu_22_04_x64_20G_alibase_20230China.vhd \
--security-group-id sg-xxx \
--vswitch-id vsw-xxx \
--system-disk "$(cat <<'EOF'
{"Size":40,"Category":"cloud_essd","PerformanceLevel":"PL1"}
EOF
)"
Perintah pipa
Untuk skrip yang mengarahkan output lama melalui jq, contoh berikut mendapatkan ID semua instans yang sedang berjalan:
aliyun ecs DescribeInstances --RegionId cn-hangzhou \
| jq -r '.Instances.Instance[] | select(.Status=="Running") | .InstanceId'
Struktur output berbasis plugin mungkin berbeda, sehingga sesuaikan path jq sesuai kebutuhan:
# Versi berbasis plugin: pertama, periksa struktur output, lalu sesuaikan ekspresi jq.
aliyun ecs describe-instances --region cn-hangzhou \
| jq -r '.Instances.Instance[] | select(.Status=="Running") | .InstanceId'
Saat melakukan migrasi perintah pipa, pertama-tama jalankan perintah berbasis plugin saja untuk melihat output lengkapnya. Pastikan struktur JSON sesuai harapan Anda sebelum menyesuaikan ekspresi jq/grep.
Menampilkan bantuan versi lama
Setelah menginstal plugin produk, aliyun <command> --help secara default menampilkan bantuan plugin. Untuk sementara waktu melihat bantuan versi lama, atur variabel lingkungan berikut:
export ALIBABA_CLOUD_ORIGINAL_PRODUCT_HELP=true
FAQ
Apakah saya masih bisa menggunakan perintah PascalCase versi lama setelah peningkatan?
Ya. CLI versi 3.3.0 dan lebih baru kompatibel secara mundur. Namun, kami merekomendasikan peningkatan ke versi terbaru untuk mendapatkan dukungan terkini.
Apakah saya perlu mengonfigurasi ulang kredensial setelah migrasi?
Tidak. CLI berbasis plugin menggunakan konfigurasi kredensial yang sama (~/.aliyun/config.json) seperti versi lama. Semua entri profile yang telah dikonfigurasi dan kredensial variabel lingkungan tetap berfungsi setelah peningkatan.
Apakah saya bisa mencampur perintah lama dan berbasis plugin dalam skrip yang sama?
Ya. Kedua gaya perintah dapat digunakan bersama dalam skrip yang sama. Kami merekomendasikan mengganti perintah lama secara bertahap berdasarkan prioritas.
Apa yang harus dilakukan jika instalasi plugin gagal?
Lakukan pemecahan masalah dalam urutan berikut:
-
Periksa apakah jaringan Anda dapat mengakses
aliyuncli.alicdn.com. -
Verifikasi bahwa direktori instalasi plugin (
~/.aliyun/plugins/) memiliki izin tulis. -
Pastikan versi CLI Anda adalah 3.3.0 atau lebih baru (versi sebelumnya tidak mendukung plugin). Jalankan
aliyun versionuntuk memeriksa.