全部产品
Search
文档中心

Elastic Compute Service:Buat dan Jalankan Perintah

更新时间:Sep 24, 2025

Melakukan tugas berulang secara manual (seperti menginstal perangkat lunak, memperbarui konfigurasi, dan mengumpulkan log) di beberapa instans Elastic Compute Service (ECS) tidaklah efisien. Cloud Assistant dapat menjalankan skrip (seperti Shell dan PowerShell) secara aman dan andal di beberapa instans.

Prosedur

Konsol

  1. Buka Konsol ECS - ECS Cloud Assistant.

  2. Di bilah navigasi atas, pilih Wilayah dan kelompok sumber daya untuk sumber daya yang ingin Anda kelola. 地域

  3. Di pojok kanan atas halaman ECS Cloud Assistant, klik Create/Run Command.

  4. Di bagian Command Information, konfigurasikan pengaturan berikut:

    • Command content: Anda dapat mengaktifkan Use Parameters.

      Payload perintah yang dikodekan Base64 tidak boleh melebihi 18 KB saat memilih Run And Save, dan 24 KB saat memilih Run.
      • Custom parameter: Gunakan format {{parameter}} untuk mendefinisikan parameter dan memberikan nilai secara manual untuk mendukung nilai dinamis dan penggunaan ulang.

      • Built-in parameter: Cloud Assistant menyediakan parameter bawaan yang nilainya diganti secara otomatis saat runtime, seperti {{ACS::RegionId}} (ID Wilayah) dan {{ACS::instansId}} (ID instans).

      #!/bin/bash
      # Contoh
      # {{name}} adalah parameter kustom yang harus Anda tetapkan nilainya.
      echo {{name}}
      
      # {{ACS::RegionId}} adalah parameter bawaan yang tidak memerlukan penugasan nilai.
      echo {{ACS::RegionId}}
    • Execution Plan:

      • Perform Only Dry Run: Perintah tidak dieksekusi. Opsi ini hanya melakukan pra-pemeriksaan pada parameter permintaan, lingkungan instans, dan status Cloud Assistant Agent.

      • Run on Schedule:

        • Run at Fixed Interval: Menjalankan perintah pada interval tetap yang ditentukan oleh rate expression.

          Interval harus di antara 60 detik dan 7 hari, dan harus lebih lama dari batas waktu perintah.
        • Run on Clock-based Schedule: Gunakan cron expression untuk penjadwalan tugas kompleks yang fleksibel.

    • Username: Secara default adalah root (Linux) atau System (Windows). Demi keamanan, sebaiknya gunakan pengguna non-root yang menerapkan prinsip hak istimewa minimal.

    • Execution Path: Direktori kerja skrip default adalah /root (Linux) dan C:\Windows\system32 (Windows). Untuk memastikan eksekusi berjalan di path yang dimaksud, gunakan perintah cd di awal skrip.

    • Timeout: Secara default adalah 60 detik. Anda dapat mengatur batas waktu tersebut dengan nilai antara 10 dan 86.400 detik (24 jam).

    • Task Stop Scope:

      • Command Process: Hanya menghentikan proses skrip saat tugas dihentikan.

      • Command Process Tree: Menghentikan seluruh prosess tree (proses skrip dan semua proses anaknya) ketika tugas dihentikan.

  5. Di bagian Select Instance atau Select Managed Instances, pilih instans target untuk perintah tersebut.

    Anda dapat memilih hingga 100 instans.
  6. Untuk memulai tugas, klik Run and Save atau Run.

CLI

  1. Persiapan

    API RunCommand menerima parameter CommandContent sebagai teks biasa atau konten yang dikodekan Base64. Jika Anda menggunakan konten yang dikodekan Base64, Anda harus mengatur ContentEncoding ke Base64. Gunakan perintah berikut untuk mengkodekan konten skrip ke Base64:

    Linux / macOS

    # Encode string "hello world"
    # Gunakan -n untuk menghindari encoding line feed di akhir
    echo -n "hello world" | base64
    # Output: aGVsbG8gd29ybGQ=

    Windows (PowerShell)

    # Encode string "hello world"
    [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("hello world"))
    # Output: aGVsbG8gd29ybGQ=
  2. Jalankan perintah

    Untuk menjalankan perintah, gunakan perintah aliyun ecs RunCommand. Untuk detail parameter, lihat RunCommand.

    • Contoh 1: Jalankan perintah secara langsung pada satu instans

      # String Base64 untuk "yum -y update" adalah "eXVtIC15IHVwZGF0ZQ=="
      aliyun ecs RunCommand --RegionId 'cn-hangzhou' \
        --Type 'RunShellScript' \
        --ContentEncoding 'Base64' \
        --CommandContent 'eXVtIC15IHVwZGF0ZQ==' \
        --instansId.1 'i-bp1************de01' \
    • Contoh 2: Jalankan perintah pada beberapa instans

      # Gunakan parameter --instansId.N beberapa kali untuk menentukan beberapa instans
      aliyun ecs RunCommand --RegionId 'cn-hangzhou' \
        --Type 'RunShellScript' \
        --ContentEncoding 'Base64' \
        --CommandContent 'eXVtIC15IHVwZGF0ZQ==' \
        --instansId.1 'i-bp1************de01' \
        --instansId.2 'i-bp1************de02' \
        --instansId.3 'i-bp1************de03'
    • Contoh 3: Buat tugas terjadwal cron

      # Parameter Frequency menggunakan ekspresi cron dan zona waktu
      # Contoh: Jalankan setiap hari pukul 12:00 siang pada tahun 2024 di zona waktu Asia/Shanghai
      aliyun ecs RunCommand --RegionId 'cn-hangzhou' \
        --Type 'RunShellScript' \
        --ContentEncoding 'Base64' \
        --CommandContent 'eXVtIC15IHVwZGF0ZQ==' \
        --RepeatMode 'Period' \
        --Frequency '0 0 12 * * ? 2024 Asia/Shanghai' \
        --instansId.1 'i-bp1************de01'
  3. Kueri hasil eksekusi

    RunCommand mengembalikan InvokeId. Periksa hasil eksekusi dengan menggunakan perintah aliyun ecs DescribeInvocationResults dengan InvokeId tersebut. Untuk detail parameter, lihat DescribeInvocationResults.

    # Ganti <invoke_id> dengan InvokeId Anda
    aliyun ecs DescribeInvocationResults --RegionId 'cn-hangzhou' --InvokeId '<invoke_id>'

    Dalam respons, field Output berisi output standar (STDOUT) skrip, dan field ErrorInfo atau ErrorMsg berisi detail kesalahan.

Batasan

  • Jumlah instans: Jumlah maksimum instans yang dapat Anda targetkan dalam satu panggilan API adalah 100. Untuk menaikkan batas ini, lihat Kelola kuota.

  • Jumlah perintah tersimpan: Secara default, Anda dapat menyimpan hingga 500 perintah Cloud Assistant dalam satu wilayah Alibaba Cloud. Kuota ini dapat ditingkatkan berdasarkan penggunaan ECS Anda. Untuk menaikkan batas ini, lihat Kelola kuota.

    Jika perintah dijalankan tanpa menyimpannya, perintah tersebut tidak termasuk dalam kuota perintah tersimpan Anda.
  • Dependensi fitur dan versi klien: Beberapa fitur lanjutan memerlukan versi tertentu dari Cloud Assistant Agent. Untuk informasi lebih lanjut, lihat Fitur dan versi.

Rekomendasi untuk penggunaan produksi

  • Pastikan Idempotence

    Saat memanggil API RunCommand melalui CLI atau SDK, sebaiknya atur parameter ClientToken untuk memastikan indempotence. Tindakan ini mencegah eksekusi perintah duplikat yang disebabkan oleh percobaan ulang jaringan.

  • Pemantauan dan Peringatan

    Pantau status eksekusi Cloud Assistant, terutama untuk tugas yang gagal. Anda dapat berlangganan event Cloud Assistant melalui EventBridge atau CloudMonitor untuk menyiapkan notifikasi peringatan jika terjadi kegagalan perintah. Hal ini membantu Anda mendeteksi dan mengatasi masalah dengan cepat.

FAQ

T: Bagaimana cara memeriksa versi Cloud Assistant Agent pada instans ECS?

A: Anda dapat memeriksa versi melalui konsol atau dengan masuk ke instans. Untuk langkah-langkah detail, lihat Instal Cloud Assistant Agent.

T: Untuk tugas terjadwal dengan Run at Fixed Interval, apakah tugas berjalan segera setelah dibuat atau hanya setelah interval pertama?

A: Tugas tidak berjalan segera. Eksekusi pertama terjadi setelah interval yang ditentukan berlalu. Jadwal ini mengikuti interval tetap. Misalnya, jika Anda membuat tugas interval 10 menit pada pukul 10:00, tugas tersebut akan berjalan pada pukul 10:10, 10:20, dan seterusnya.

T: Perintah saya gagal dijalankan. Bagaimana cara mengatasinya?

A: 1. Lihat log Output terperinci di halaman hasil eksekusi pada konsol untuk menganalisis pesan error.

2. Pastikan pengguna eksekusi memiliki izin baca, tulis, dan eksekusi pada file dan direktori terkait.

3. Validasi sintaksis skrip dan pastikan skrip dapat berjalan dengan sukses saat dieksekusi secara manual.

4. Pastikan instans dalam status Running dan memiliki konektivitas jaringan normal.

5. Jika error ClientNeedUpgrade muncul, periksa dan upgrade Cloud Assistant Agent.

Untuk informasi lebih lanjut, lihat Periksa hasil eksekusi dan mengatasi masalah umum.