All Products
Search
Document Center

Elastic Compute Service:Manage ECS instances by using Workbench CLI

Last Updated:Aug 21, 2026

Gunakan perintah seperti list, connect, exec, serta upload/download untuk mengkueri instance ECS, login tanpa password, menjalankan perintah jarak jauh, dan mentransfer file. Output JSON terstruktur dan penerusan kode keluar perintah mendukung konsumsi oleh skrip serta diagnosis mandiri yang cepat terhadap kegagalan.

Prasyarat

  • Workbench CLI telah diinstal di komputer Anda, dan kredensial serta izin RAM minimum telah dikonfigurasi. Untuk informasi lebih lanjut, lihat Install Workbench CLI and configure credentials.

  • Instance ECS target adalah Linux instance dalam status Running, dan Cloud Assistant agent telah diinstal dan berjalan.

  • Komputer Anda harus dapat mengakses *.aliyuncs.com dan titik akhir WebSocket backend Workbench. Perintah upload dan download juga memerlukan agar instance dapat mengakses titik akhir internal OSS di wilayah yang sesuai.

Penting

Workbench CLI saat ini hanya mendukung koneksi ke Linux instance. Untuk menghubungkan ke Windows instance, gunakan Connect to an instance by using Workbench.

Parameter global

Tiga parameter global berikut berlaku untuk semua subperintah workbench.

Parameter

Nilai default

Deskripsi

--output / -o

text

Format output. Nilai yang valid: text dan json. Kami menyarankan Anda menggunakan json untuk konsumsi oleh skrip atau AI agent.

--region / -r

Disimpulkan secara otomatis

ID wilayah Alibaba Cloud, seperti cn-hangzhou. CLI mengarahkan wilayah secara otomatis dari awalan ID instans, sehingga biasanya Anda tidak perlu menentukannya secara manual.

--profile / -P

Profil aktif

Menentukan profil kredensial yang digunakan untuk perintah ini, menggantikan profil aktif. Gunakan ini untuk beralih antar beberapa akun atau set kredensial.

Wilayah ditentukan dalam urutan berikut: pemetaan awalan ID instanslookup sesi aktif di daemonerror yang meminta Anda menentukan --region secara manual. Saat pertama kali menggunakan suatu instance, disarankan untuk menjalankan workbench list ecs -r <region> terlebih dahulu guna mengonfirmasi ID instans.

Kueri daftar instance (workbench list ecs)

Gunakan perintah ini untuk mengkueri instance ECS berdasarkan wilayah, status, tag, dan kondisi lainnya agar Anda dapat dengan cepat menemukan ID instance target. Secara default, workbench list setara dengan workbench list ecs. Berikut beberapa contoh umum:

# Kueri semua instance di wilayah tertentu
workbench list ecs -r cn-hangzhou

# Kueri hanya instance yang sedang berjalan
workbench list ecs -r cn-hangzhou --status Running

# Filter berdasarkan tag (beberapa opsi --tag menggunakan semantik AND)
workbench list ecs -r cn-hangzhou --tag env=prod --tag app=web

# Filter berdasarkan tipe instans, nama, VPC, dan kondisi lainnya
workbench list ecs -r cn-hangzhou --instance-type ecs.g7.large --instance-name "web-*"

# Output JSON untuk konsumsi oleh skrip atau AI agent
workbench list ecs -r cn-hangzhou --output json

Parameter:

Parameter

Wajib

Deskripsi

-r / --region

Ya

ID wilayah Alibaba Cloud.

--status

Tidak

Filter berdasarkan status. Nilai yang valid: Running, Stopped, Starting, dan Stopping.

--tag

Tidak

Filter berdasarkan tag dalam format key=value (atau hanya key). Anda dapat menentukan parameter ini beberapa kali, dan beberapa tag menggunakan semantik AND.

--instance-type

Tidak

Filter berdasarkan tipe instans, misalnya ecs.g7.large.

--instance-name

Tidak

Filter berdasarkan nama instance. Karakter wildcard * didukung.

--image-id

Tidak

Filter berdasarkan ID image.

--vpc-id

Tidak

Filter berdasarkan ID VPC.

--zone-id

Tidak

Filter berdasarkan ID zona.

--vswitch-id

Tidak

Filter berdasarkan ID vSwitch.

--private-ip

Tidak

Filter berdasarkan alamat IP pribadi. Pisahkan beberapa alamat dengan koma.

--limit

Tidak

Jumlah maksimum instance yang dikembalikan per halaman. Nilai yang valid: 1 hingga 100. Default: 50.

--next-token

Tidak

Token pagination yang diperoleh dari respons sebelumnya, digunakan untuk mengambil halaman berikutnya.

Struktur respons dari --output json adalah sebagai berikut:

{
  "instances": [
    {
      "instance_id": "i-bp1xxxxx",
      "instance_name": "web-prod-01",
      "instance_type": "ecs.g7.large",
      "region_id": "cn-hangzhou",
      "status": "Running",
      "private_ip": "172.16.0.10",
      "public_ip": "",
      "os_type": "linux",
      "image_id": "aliyun_3_x64_20G_alibase_20230727.vhd",
      "tags": {"env": "prod"}
    }
  ]
}

Koneksi interaktif (workbench connect)

workbench connect membuka sesi PTY interaktif dan merupakan perintah inti CLI Workbench. Berikut contoh umumnya:

# Autentikasi default tanpa password (login tanpa password Workbench)
workbench connect -i i-bp1a2b3c4d5e6f

# Autentikasi password (masukkan password secara interaktif; input tidak ditampilkan)
workbench connect -i i-bp1a2b3c4d5e6f --auth-type password

# Autentikasi sertifikat (masukkan path file kunci secara interaktif, seperti ~/.ssh/id_rsa)
workbench connect -i i-bp1a2b3c4d5e6f --auth-type certificate

# Tentukan user dan port login
workbench connect -i i-bp1a2b3c4d5e6f -u admin -p 2222

# Paksa sesi baru (jangan gunakan kembali sesi yang sudah ada)
workbench connect -i i-bp1a2b3c4d5e6f --new

Parameter:

Parameter

Wajib

Nilai default

Deskripsi

-i / --instance-id

Ya*

ID instance ECS.

-r / --region

Tidak

Disimpulkan secara otomatis

ID wilayah Alibaba Cloud. Biasanya Anda tidak perlu menentukannya.

-u / --user-name

Tidak

root

Username login remote.

--auth-type

Tidak

none

Metode autentikasi. Nilai yang valid: none, password, dan certificate.

-p / --port

Tidak

22

Port SSH remote.

--new

Tidak

false

Memaksa sesi baru dan tidak menggunakan kembali sesi yang sudah ada.

--session-id

Ya*

Menghubungkan langsung ke ID sesi tertentu (penggunaan lanjutan).

Catatan

* Tentukan salah satu dari -i atau --session-id. Jika keduanya ditentukan, --session-id memiliki prioritas lebih tinggi.

Metode Autentikasi

Metode autentikasi

Perilaku

Skenario

none (default)

Membuat sesi langsung melalui saluran login tanpa password Workbench, tanpa perlu mengatur password atau kunci di instance sebelumnya.

O&M harian tanpa overhead manajemen kunci SSH.

password

Meminta Anda memasukkan password secara interaktif setelah terhubung. Input tidak ditampilkan.

Skenario di mana instance telah mengaktifkan login password dan memerlukan autentikasi password SSH.

certificate

Meminta Anda memasukkan path file kunci secara interaktif setelah terhubung (misalnya ~/.ssh/id_rsa). CLI secara otomatis membaca isi file tersebut dan menyelesaikan autentikasi.

Skenario di mana tim mewajibkan login berbasis kunci dan auditing harus dapat dilacak kembali ke sidik jari kunci.

Perintah Interaktif dan Tombol Pintasan

Setelah Anda memasuki sesi workbench connect, tekan Tab di awal baris untuk membuka panel perintah slash.

Perintah

Fungsi

/agent

Masuk ke mode percakapan AI agent dalam sesi (lihat bagian berikutnya).

/upload

Mengunggah file lokal ke instance (membuka pemilih file interaktif).

/download

Mengunduh file dari instance ke komputer lokal (membuka pemilih file interaktif).

/detach

Melepaskan sesi (sesi tetap aktif di latar belakang, dan Anda dapat mengaitkannya kembali nanti dengan menjalankan workbench connect -i <instance ID>).

/exit

Keluar dan menutup sesi.

/clear

Membersihkan layar.

/help

Menampilkan informasi bantuan.

Tombol pintasan umum:

Kunci

Fungsi

Tab (di awal baris)

Membuka panel perintah slash.

Ctrl+A

Masuk atau keluar dari mode AI agent.

Ctrl+D

Keluar dari sesi (setara dengan /exit).

Ctrl+C

Menginterupsi perintah remote saat ini tanpa memutus sesi.

Gunakan Asisten AI Agent dalam Sesi

Dalam sesi workbench connect, Anda dapat langsung memanggil asisten AI agent bawaan untuk menjalankan operasi pada instance saat ini menggunakan bahasa alami. Pemicuan dapat dilakukan dengan tiga cara berikut:

  • Masukkan /agent di awal baris, lalu tekan Enter.

  • Tekan tombol pintasan Ctrl+A.

  • Tekan Tab untuk membuka panel perintah slash, lalu pilih /agent.

Setelah memasuki mode agent, prompt perintah berubah menjadi prompt khusus mode agent. Masukkan bahasa alami langsung setelah prompt ini, dan agent akan mengembalikan respons sebagai aliran. Perintah slash dalam mode agent:

Perintah

Fungsi

/shell

Keluar dari mode agent dan kembali ke shell biasa (Ctrl+A juga keluar).

/new

Memulai percakapan agent baru dan menghapus konteks.

/clear

Membersihkan layar.

/upload / /download

Memicu unggah atau unduh file langsung dalam mode agent.

/help

Menampilkan bantuan.

/exit

Keluar dan menutup sesi.

Contoh percakapan khas:

Agent> Tampilkan proses dengan penggunaan CPU tertinggi
  ┌─ Menjalankan perintah ──────────
  │ ps aux --sort=-%cpu | head -10
  └────────────────────────
  Menunggu konfirmasi (Y/n): y
  [Dieksekusi]
  ... (agent melanjutkan analisis dan memberikan kesimpulan)
Penting

Konfirmasi Human-in-the-loop (HITL): Sebelum menjalankan perintah apa pun pada instance, agen akan menampilkan perintah yang akan dijalankan dan menunggu konfirmasi Anda melalui Y/n. Operasi API Cloud—seperti membuat Snapshot—juga memerlukan konfirmasi. Mekanisme ini merupakan perlindungan utama untuk mencegah tindakan tidak disengaja oleh AI. Jangan nonaktifkannya.

Agen menyimpan konteks percakapan dalam sesi yang sama. Anda dapat menggunakan /new untuk mengatur ulang konteks tersebut. Respons dikirimkan sebagai aliran, dan Anda dapat menekan Ctrl+C untuk menginterupsi proses generasi saat ini.

Catatan

Bagian ini menjelaskan cara langsung memanggil asisten AI bawaan dalam sesi connect. Jika Anda ingin agent dalam tool pemrograman AI eksternal (Wukong atau opencode) memanggil perintah workbench, lihat Operate ECS instances by using Workbench CLI in AI agents.

Eksekusi perintah remote (workbench exec)

workbench exec menjalankan satu perintah pada instance dan mengembalikan hasilnya. Berbeda dengan shell persisten connect, setiap panggilan exec berjalan dalam lingkungan yang independen. Meskipun demikian, beberapa panggilan ke instance yang sama menggunakan kembali saluran koneksi dasar, sehingga tidak memerlukan pengaturan koneksi berulang. Contoh umum:

# Jalankan perintah
workbench exec -i i-bp1a2b3c4d5e6f -c "df -h"

# Gabungkan perintah: cd + variabel lingkungan + jalankan
workbench exec -i i-bp1a2b3c4d5e6f -c "cd /opt/app && ./deploy.sh"

# Atur timeout
workbench exec -i i-bp1a2b3c4d5e6f -c "sleep 30" --timeout 10

# Output JSON untuk konsumsi oleh skrip atau AI agent
workbench exec -i i-bp1a2b3c4d5e6f -c "df -h" --output json

Parameter:

Parameter

Wajib

Nilai default

Deskripsi

-i / --instance-id

Ya

ID instance ECS.

-c / --command

Ya

Perintah yang akan dijalankan.

--timeout

Tidak

30

Periode timeout, dalam detik.

Penting

Setiap panggilan exec berjalan dalam lingkungan shell yang independen dan tidak mewarisi direktori saat ini, variabel lingkungan, atau status shell dari panggilan sebelumnya. Jika Anda memerlukan kontinuitas konteks (misalnya, menjalankan perintah cd diikuti perintah lain), gabungkan perintah-perintah tersebut dengan && atau ; dalam parameter -c yang sama.

Struktur respons dari --output json adalah sebagai berikut:

{
  "output": "Filesystem ...\n",
  "stderr": "",
  "exit_code": 0
}

Dalam struktur ini, output adalah standar output perintah, stderr adalah standar error, dan exit_code adalah kode keluar perintah jarak jauh (berupa bilangan bulat).

Transfer file (workbench upload / download)

Jika Anda tidak memiliki alamat IP publik atau saluran SCP, gunakan workbench upload / workbench download untuk mentransfer file. Proses unggah menampilkan bilah progres secara real-time.

Contoh unggah:

workbench upload ./app.jar /opt/app/app.jar -i i-bp1a2b3c4d5e6f

Contoh unduh:

# Unduh ke direktori saat ini
workbench download /var/log/app.log ./ -i i-bp1a2b3c4d5e6f

# Unduh dan ganti nama
workbench download /var/log/app.log ./local-copy.log -i i-bp1a2b3c4d5e6f

Parameter:

Parameter

Wajib

Nilai default

Deskripsi

-i / --instance-id

Ya

ID instance ECS.

Catatan

File ditransfer melalui OSS secara transparan bagi Anda, tanpa memerlukan izin OSS atau konfigurasi bucket. Instance harus dapat mengakses titik akhir internal OSS di wilayah yang sesuai (oss-<region>-internal.aliyuncs.com).

Manajemen sesi (workbench session)

Catatan

Sesi biasanya dibuat, digunakan kembali, dan dibersihkan secara otomatis oleh CLI, dan tidak memerlukan intervensi dalam penggunaan sehari-hari. Perintah dalam bagian ini digunakan untuk diagnosis dan pembersihan manual.

Perintah umum:

# Lihat semua sesi aktif
workbench session list
workbench session list --output json

# Tutup sesi tertentu
workbench session close <session-id>

# Tutup semua sesi
workbench session close --all

Transisi status sesi:

  • OPEN: Sesi telah dibuat dan dapat dibaca maupun ditulis secara normal.

  • RECONNECTING: WebSocket dasar telah terputus dan sedang mencoba menyambung kembali.

  • BROKEN: Koneksi ulang gagal dan sesi tidak tersedia.

  • CLOSED: Sesi telah ditutup (oleh pengguna, karena habis waktu, atau mencapai batas TTL).

Beberapa operasi connect, exec, upload, dan download pada instance yang sama berbagi sesi yang sama. Sesinya ditangani secara transparan oleh daemon, sehingga Anda tidak perlu khawatir tentang ID sesi. Hanya satu terminal (TTY) yang dapat dikaitkan ke sesi tersebut dalam satu waktu. Jika terminal sudah terkait, Anda dapat menggunakan --new untuk membuat sesi baru atau menutup koneksi yang ada terlebih dahulu.

Manajemen daemon (workbench daemon)

Workbench CLI bergantung pada daemon latar belakang ruang pengguna untuk mempertahankan koneksi WebSocket dan melakukan multiplexing sesi. Siklus hidup daemon sepenuhnya otomatis dan biasanya tidak memerlukan manajemen manual.

# Lihat status daemon
workbench daemon status

# Hentikan daemon (menutup semua sesi)
workbench daemon stop
  • Startup otomatis: Daemon akan dimulai secara otomatis saat Anda menjalankan perintah workbench untuk pertama kalinya.

  • Keluar otomatis: Daemon keluar secara otomatis 60 detik setelah sesi terakhir ditutup.

  • Instans tunggal: Hanya satu instans daemon yang diizinkan per pengguna sistem operasi (diberlakukan oleh kunci file PID).

  • Saluran IPC: CLI dan daemon berkomunikasi melalui ~/.workbench/run/daemon.sock (socket Unix) menggunakan protokol JSON-RPC.

Skenario khas

Skenario 1: Penerapan Aplikasi

Unggah paket penyebaran → jalankan skrip penyebaran secara remote → verifikasi kesehatan layanan pada instance.

workbench upload ./app-2.0.tar.gz /opt/deploy/ -i i-bp1a2b3c4d5e6f
workbench exec -i i-bp1a2b3c4d5e6f -c "cd /opt/deploy && tar xzf app-2.0.tar.gz && ./deploy.sh"
workbench exec -i i-bp1a2b3c4d5e6f -c "curl -s http://localhost:8080/health"

Skenario 2: Eksekusi Batch Perintah Diagnostik

Gunakan exec --output json untuk mendapatkan hasil terstruktur yang dapat diuraikan lebih lanjut oleh skrip atau difilter menggunakan jq.

workbench exec -i i-bp1a2b3c4d5e6f -c "df -h && free -m" --output json | jq '.output'
workbench exec -i i-bp1a2b3c4d5e6f -c "systemctl status nginx" --output json | jq '.exit_code'

Skenario 3: Mengaitkan Ulang ke Sesi Setelah Melepaskan

Untuk tugas berjalan lama (seperti tail log atau kompilasi), Anda dapat menjalankan /detach lalu menutup terminal lokal. Saat menjalankan connect kembali nanti, Anda akan secara otomatis mengaitkan ulang ke sesi asli.

workbench connect -i i-bp1a2b3c4d5e6f
# Jalankan tail -f atau tugas berjalan lama dalam sesi
# Lalu masukkan /detach untuk melepaskan

# Mengaitkan ulang ke sesi asli nanti
workbench connect -i i-bp1a2b3c4d5e6f

Kode keluar

workbench exec meneruskan kode keluar perintah remote: CLI akan keluar dengan kode keluar yang sama dengan yang dikembalikan oleh perintah remote, konsisten dengan perilaku SSH. Dengan demikian, skrip dapat langsung menentukan keberhasilan perintah remote berdasarkan kode keluar workbench exec.

Sebagai contoh, perintah berikut menjalankan exit 42 pada instance, dan CLI juga keluar dengan kode 42:

workbench exec -i i-bp1a2b3c4d5e6f -c "exit 42"
echo $?   # Menghasilkan 42

Jika perintah gagal karena alasan seperti parameter tidak valid, autentikasi gagal, masalah jaringan, atau instance tidak ditemukan, penggunaan --output json akan menghasilkan detail kesalahan dalam format berikut:

{
  "code": 1,
  "message": "session resolve: login instance: ... InvalidParameter.InstanceId ..."
}

Dalam struktur ini, code adalah pengidentifikasi error bukan nol, sedangkan message berisi deskripsi error yang dapat dibaca (biasanya mencakup kode error dan RequestId dari API dasar) yang dapat Anda gunakan untuk melokalisasi masalah.

Pemecahan Masalah

Gejala umum dan tindakan pertama yang harus diambil:

Gejala / pesan error

Tindakan pertama

Autentikasi gagal: InvalidAccessKeyId.NotFound (AccessKey tidak ditemukan) atau IncompleteSignature (Rahasia AccessKey tidak cocok)

Periksa apakah ID AccessKey dan Rahasia AccessKey di ~/.workbench/config.json merupakan pasangan yang cocok dan lengkap tanpa spasi tambahan, atau jalankan kembali perintah workbench config.

Error yang menunjukkan instance tidak ada / InvalidParameter.InstanceId

Pastikan ID instance dan wilayahnya benar. Anda dapat menjalankan workbench list ecs -r <region> untuk mengkueri dan mengonfirmasi.

Login tanpa kata sandi gagal / IncorrectStatus.CloudAssistantNotRunning (agen Cloud Assistant tidak berjalan)

Secara default, login tanpa kata sandi (saat --auth-type tidak ditentukan, nilainya none) bergantung pada agen Cloud Assistant yang berjalan di dalam instance. Kesalahan ini terjadi ketika agen berada dalam kondisi abnormal. Pastikan agen Cloud Assistant telah diinstal dan berjalan normal pada instance target; jika tidak normal, lakukan restart atau instal ulang melalui Konsol ECS. Lihat Install the Cloud Assistant agent. Atau, gunakan --auth-type password atau certificate untuk autentikasi SSH.

profile not found

Periksa kebenaran nama profil. Jalankan workbench config list untuk melihat daftar profil yang telah dikonfigurasi.

Timeout koneksi / error WebSocket

Periksa apakah komputer Anda dapat mengakses *.aliyuncs.com dan apakah security group instance mengizinkan saluran Workbench (dari 100.104.0.0/16 ke TCP 22).

Koneksi sedang digunakan (sesi sudah dikaitkan oleh terminal lain)

Gunakan --new untuk membuat sesi baru atau tutup koneksi yang ada terlebih dahulu.

Tidak dapat terhubung ke daemon

Jalankan workbench daemon status. Jika proses tersebut berhenti, perintah apa pun akan memicu restart otomatis.

Error izin file konfigurasi

Jalankan chmod 600 ~/.workbench/config.json. CLI menolak file konfigurasi yang memiliki izin terlalu longgar.

Token STS kedaluwarsa

Dalam mode RamRoleArn, CLI melakukan refresh secara otomatis. Jika Anda menggunakan token STS statis, perbarui token tersebut.

Perintah debugging:

# Lihat status daemon
workbench daemon status

# Output error JSON untuk penguraian mudah oleh skrip
workbench exec -i i-bp1a2b3c4d5e6f -c "echo test" --output json

Log daemon disimpan di ~/.workbench/log/daemon.log.

Referensi