All Products
Search
Document Center

Elastic Compute Service:Inisialisasi instans menggunakan data pengguna

Last Updated:Aug 21, 2026

Jika Anda ingin melakukan konfigurasi sistem atau menjalankan skrip bisnis tertentu saat membuat Instance ECS—seperti menginstal perangkat lunak seperti Nginx dan Docker terlebih dahulu atau mengubah hostname—gunakan parameter User Data.

Ikhtisar Data Kustom

User data terdiri dari skrip, instruksi, atau file konfigurasi yang dapat Anda unggah ke instans untuk melakukan tugas inisialisasi atau konfigurasi. Misalnya, saat instans pertama kali dijalankan, instans tersebut dapat secara otomatis menjalankan skrip startup layanan, menginstal perangkat lunak, atau mencatat log. User data dijalankan secara otomatis ketika instans pertama kali dijalankan. Beberapa format user data juga mendukung eksekusi setiap kali instans Linux dijalankan. Untuk informasi selengkapnya, lihat Format data pengguna dan frekuensi eksekusi.

Batasan

  • Instans harus berada dalam virtual private cloud (VPC).

  • Instans harus menggunakan gambar publik atau custom image yang dibuat dari gambar publik. Sistem operasi harus salah satu dari berikut ini:

    • Alibaba Cloud Linux, CentOS, CentOS Stream, Ubuntu, SUSE Linux Enterprise Server, Red Hat Enterprise Linux, OpenSUSE, Debian, AlmaLinux, Rocky Linux, atau Fedora

    • Windows Server 2008 R2 atau versi yang lebih baru

  • Di antara jenis instans yang telah ditarik, hanya instans I/O teroptimasi yang mendukung fitur user data. Fitur ini tidak didukung pada instans non-I/O teroptimasi. Untuk informasi selengkapnya, lihat Jenis instans yang telah ditarik.

Gunakan user data saat membuat instans

1. Siapkan data kustom

Saat inisialisasi instans, tool inisialisasi membaca user data yang Anda berikan untuk melakukan konfigurasi kustom. Instans Linux dan Windows menggunakan tool inisialisasi yang berbeda. Tool ini mendukung beberapa format user data. Untuk informasi selengkapnya tentang format data dan frekuensi eksekusinya, lihat bagian berikut.

Format Data Kustom dan Frekuensi Eksekusi

Instans Linux

Instans Linux menggunakan komponen cloud-init untuk melakukan aksi inisialisasi. Konfigurasi yang dijalankan bergantung pada apakah instans dijalankan untuk pertama kalinya. Beberapa instans yang menggunakan versi gambar lama juga menggunakan Upstart Job untuk inisialisasi.

Tool cloud-init mendukung jenis user data yang dapat langsung mengonfigurasi instans, seperti format User-Data dan Cloud Config. Tool ini juga mendukung format user data lainnya. Format yang paling umum adalah file include dan konten terkompresi Gzip. Selain tool cloud-init, beberapa instans yang menggunakan versi gambar lama juga menggunakan Upstart Job untuk inisialisasi.

Catatan
  • Untuk informasi selengkapnya tentang format user data, lihat User-Data Formats dalam dokumentasi cloud-init.

  • Jika ukuran skrip User-Data, data Cloud Config, atau file Include Anda melebihi 32 KB, pilih Gzip compressed content sebagai tipe data.

  • Jika suatu tugas perlu dijalankan setiap kali instans dijalankan, pilih Cloud Config data atau Upstart Job sebagai tipe data.

Skrip User-Data

  • Ikhtisar

    Saat skrip User-Data diteruskan ke instans Linux, skrip tersebut dijalankan sebagai skrip shell. Skrip ini hanya dijalankan sekali saat instans pertama kali dijalankan.

  • Frekuensi eksekusi

    • Jalankan instans: Hanya dijalankan sekali saat instans pertama kali dijalankan. Skrip tidak dijalankan lagi saat instans direstart.

    • Ganti sistem operasi: Dijalankan secara otomatis.

    • Inisialisasi ulang disk sistem: Dijalankan secara otomatis.

    Penting

    Skrip tidak dijalankan secara otomatis dalam kasus berikut:

    • Jika Anda menggunakan custom image yang dibuat dari instans sumber untuk mengganti sistem operasi, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.

    • Jika Anda menggunakan custom image untuk membuat instans, disk sistem instans tersebut sudah berisi data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.

  • Format

    Baris pertama harus dimulai dengan shebang (#!).

  • Contoh skrip User-Data

    • Jalankan skrip kustom

      #!/bin/sh
      echo "Hello World. The time is now $(date -R)!" | tee /root/userdata_test.txt

      Skrip User-Data contoh ini menulis waktu sistem ke file userdata_test.txt saat instans pertama kali dijalankan.

    • Kustomisasi sumber perangkat lunak, konfigurasi DNS, dan layanan sinkronisasi waktu

      Saat membuat instans, Anda dapat menggunakan skrip User-Data untuk menyesuaikan sumber perangkat lunak, konfigurasi DNS, dan layanan sinkronisasi waktu untuk instans tersebut. Contoh berikut menggunakan CentOS Stream 9. Ganti konfigurasi tersebut dengan yang sesuai untuk sistem operasi Anda.

      Penting

      Sistem secara otomatis mengonfigurasi repositori yum default, layanan Network Time Protocol (NTP), dan layanan DNS saat instans dijalankan. Anda dapat menggunakan user data untuk mengubah repositori yum default, layanan NTP, dan layanan DNS. Perhatikan hal berikut:

      • Jika Anda menyesuaikan repositori yum, Alibaba Cloud tidak lagi memberikan dukungan untuk repositori yum tersebut.

      • Jika Anda menyesuaikan layanan NTP, Alibaba Cloud tidak lagi menyediakan layanan sinkronisasi waktu.

      #!/bin/sh
      # Modify DNS
      echo "nameserver 114.114.114.114" | tee /etc/resolv.conf
      # Modify yum repo and update
      cp /etc/yum.repos.d/centos.repo /etc/yum.repos.d/centos.repo.bak
      cp /etc/yum.repos.d/centos-addons.repo /etc/yum.repos.d/centos-addons.repo.bak
      sed -i "s@http://mirrors.cloud.aliyuncs.com/centos-stream/@https://mirror.stream.centos.org/@g" /etc/yum.repos.d/centos.repo
      sed -i "s@http://mirrors.cloud.aliyuncs.com/centos-stream/@https://mirror.stream.centos.org/@g" /etc/yum.repos.d/centos-addons.repo
      yum update -y
      # Modify NTP Server
      echo "server ntp1.aliyun.com" | tee /etc/ntp.conf
      systemctl restart ntpd.service
      Catatan

      Pada kode sebelumnya, 114.114.114.114 adalah alamat server DNS, https://mirror.stream.centos.org adalah alamat repositori yum untuk CentOS Stream, dan server ntp1.aliyun.com adalah alamat server NTP untuk Alibaba Cloud. Ganti sesuai kebutuhan.

      Anda juga dapat menggunakan data Cloud Config untuk mengubah repositori yum. Namun, metode ini kurang fleksibel dan tidak dapat beradaptasi dengan kasus di mana Alibaba Cloud telah mengonfigurasi beberapa repositori yum. Kami menyarankan Anda menggunakan skrip User-Data.

    • Kustomisasi akun administrator

      Secara default, instans Linux menggunakan pengguna root sebagai administrator. Anda dapat menggunakan user data untuk menentukan pengguna lain sebagai administrator.

      #!/bin/sh
      useradd test-user
      echo "test-user   ALL=(ALL)        NOPASSWD:ALL" | tee -a /etc/sudoers
      mkdir /home/test-user/.ssh
      touch /home/test-user/.ssh/authorized_keys
      echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCRnnUveAis****" | tee -a /home/test-user/.ssh/authorized_keys
      Catatan

      Ganti kunci publik contoh ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCRnnUveAis**** dengan kunci publik Anda yang sebenarnya.

Catatan

Jika terjadi masalah saat skrip User-Data dijalankan, Anda dapat menjalankan perintah Cloud Assistant umum ACS-ECS-UserData-Check-for-linux.sh untuk mendapatkan log error. Jika pesan error dikembalikan, skrip gagal dijalankan. Jika tidak ada pesan error yang dikembalikan, skrip dijalankan tanpa error, dan Anda harus menyelidiki potensi masalah lainnya. Untuk informasi selengkapnya tentang perintah Cloud Assistant umum, lihat Lihat dan jalankan perintah publik.

Data Cloud Config

  • Ikhtisar

    Cloud-init menggunakan serangkaian modul fungsional untuk melakukan tugas seperti menginstal paket perangkat lunak dan mengatur jaringan. Modul yang dijalankan dan logikanya ditentukan oleh data Cloud Config, yang dapat berasal dari vendor data, user data, atau parameter kernel. Saat Anda membuat Instance ECS, Anda dapat menyesuaikan data Cloud Config untuk menentukan modul dan tugas mana yang akan dijalankan. Saat instans dijalankan, cloud-init membaca dan mengurai data Cloud Config, menjalankan modul yang sesuai, dan melakukan tugas konfigurasi yang ditentukan untuk secara otomatis mengonfigurasi dan menerapkan Instance ECS.

  • Frekuensi Eksekusi

    • Jalankan instans: Apakah tugas dalam data Cloud Config dijalankan tergantung pada pengaturan frekuensi modul yang sesuai. Untuk informasi selengkapnya tentang modul, lihat Modules.

      • Frekuensi once-per-instance: Hanya dijalankan saat instans pertama kali dijalankan. Misalnya, jika Anda mengonfigurasi modul seperti Apt dan Set Passwords, frekuensinya once-per-instance, dan tidak dijalankan saat instans direstart.

      • Frekuensi always: Dijalankan setiap kali instans dijalankan. Misalnya, jika Anda mengonfigurasi modul seperti Bootcmd dan Update Etc Hosts, frekuensinya always, dan dijalankan setiap kali instans dijalankan.

    • Ganti sistem operasi: Dijalankan secara otomatis.

    • Inisialisasi ulang disk sistem: Dijalankan secara otomatis.

      Penting

      Skrip tidak dijalankan secara otomatis dalam kasus berikut:

      • Jika Anda menggunakan custom image yang dibuat dari instans sumber untuk mengganti sistem operasi, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.

      • Jika Anda menggunakan custom image untuk membuat instans, disk sistem instans tersebut sudah berisi data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.

  • Format

    • Baris pertama harus berupa #cloud-config, tanpa spasi di awalnya.

    • Konten harus ditulis dalam sintaks YAML.

  • Contoh data Cloud Config

    • Sesuaikan sumber perangkat lunak instance

      Pada bagian User Data, masukkan konten berikut untuk mengonfigurasi sumber perangkat lunak instans kustom. Contoh ini menggunakan gambar Ubuntu untuk membuat instans. Jika Anda menggunakan gambar berbeda, ganti konfigurasi dengan konten untuk modul yang sesuai.

      #cloud-config
      apt:
        preserve_sources_list: false
        disable_suites:
          - $RELEASE-updates
          - backports
          - $RELEASE
          - mysuite
        primary:
          - arches:
              - amd64
              - i386
              - default
            uri: http://us.archive.ubuntu.com/ubuntu
    • Konfigurasikan instalasi otomatis layanan Nginx

      Pada bagian User Data, masukkan konten berikut untuk mengonfigurasi instans agar secara otomatis menginstal layanan Nginx.

      #cloud-config
      packages: 
       - nginx 
      runcmd: 
       - systemctl start nginx.service
    • Konfigurasikan hostname kustom

      Pada bagian User Data, masukkan konten berikut untuk menetapkan hostname kustom.

      #cloud-config
      hostname: my-instance
      fqdn: my-instance.localdomain
    • Konfigurasikan skrip kustom untuk dijalankan secara otomatis

      Pada bagian User Data, masukkan konten berikut untuk mengonfigurasi skrip shell agar dijalankan secara otomatis setiap kali instans dijalankan.

      #cloud-config
      bootcmd:
      - echo "Hello World. The time is now $(date -R)!" | tee /root/userdata_test.txt

File Include

  • Ikhtisar

    File Include berisi tautan ke satu atau beberapa skrip User-Data atau file data Cloud Config. Pisahkan beberapa tautan dengan baris baru. Saat instans dijalankan, cloud-init mengurai dan membaca konten setiap tautan secara berurutan. Jika terjadi error saat membaca konten tautan, cloud-init berhenti membaca tautan yang tersisa.

    Catatan

    Anda dapat menggunakan Alibaba Cloud Object Storage Service (OSS) untuk mengunggah skrip User-Data atau data Cloud Config, mengambil tautan, dan menetapkan periode validitas tautan. Untuk informasi selengkapnya, lihat Memulai dengan konsol OSS.

  • Frekuensi Eksekusi

    • Jalankan instans: Frekuensi eksekusi ditentukan oleh konten tautan. Misalnya, jika konten tautan adalah skrip User-Data, skrip tersebut hanya dijalankan sekali saat instans pertama kali dijalankan. Jika konten tautan adalah data Cloud Config, skrip tersebut mengikuti frekuensi eksekusi data Cloud Config.

    • Ganti sistem operasi: Dijalankan secara otomatis.

    • Inisialisasi ulang disk sistem: Dijalankan secara otomatis.

      Penting

      Skrip tidak dijalankan secara otomatis dalam kasus berikut:

      • Jika Anda menggunakan custom image yang dibuat dari instans sumber untuk mengganti sistem operasi, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.

      • Jika Anda menggunakan custom image untuk membuat instans, disk sistem instans tersebut sudah berisi data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.

  • Format

    Baris pertama harus berupa #include, tanpa spasi di awalnya.

  • Contoh Include File

    #include
    https://ecs-image-test.oss-cn-hangzhou.aliyuncs.com/userdata/myscript.sh

    File Include contoh ini berisi tautan ke skrip. Skrip tersebut merupakan skrip User-Data, sehingga hanya dijalankan sekali saat instans pertama kali dijalankan.

    Catatan

    Jika Anda menggunakan file Include atau konten terkompresi Gzip, Anda harus menggunakan layanan penyimpanan untuk mengunggah skrip, mengambil tautan skrip, dan menetapkan periode validitas tautan. Kami menyarankan Anda menggunakan Alibaba Cloud OSS. Untuk informasi selengkapnya, lihat Memulai dengan konsol OSS.

Konten terkompresi Gzip

  • Ikhtisar

    Jika ukuran skrip User-Data, data Cloud Config, atau file Include Anda melebihi 32 KB, Anda dapat menggunakan konten terkompresi Gzip (dalam format .gz). Buat tautan ke konten terkompresi tersebut dan masukkan tautan tersebut ke dalam file Include. cloud-init secara otomatis mendekompresi konten Gzip tersebut. Efek menjalankan konten yang didekompresi sama dengan meneruskan dan menjalankan konten aslinya secara langsung.

    Catatan

    Anda dapat menggunakan Alibaba Cloud OSS untuk mengunggah skrip User-Data atau data Cloud Config, mengambil tautan, dan menetapkan periode validitas tautan. Untuk informasi selengkapnya, lihat Memulai dengan konsol OSS.

  • Frekuensi eksekusi

    • Jalankan instans: Ditentukan oleh tipe skrip dan tipe modul. Misalnya, jika tautan ke konten terkompresi Gzip adalah untuk skrip User-Data, skrip tersebut hanya dijalankan sekali saat instans pertama kali dijalankan.

    • Ganti sistem operasi: Dijalankan secara otomatis.

    • Inisialisasi ulang disk sistem: Dijalankan secara otomatis.

      Penting

      Skrip tidak dijalankan secara otomatis dalam kasus berikut:

      • Jika Anda menggunakan custom image yang dibuat dari instans sumber untuk mengganti sistem operasi, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.

      • Jika Anda menggunakan custom image untuk membuat instans, disk sistem instans tersebut sudah berisi data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.

  • Format

    Baris pertama harus berupa #include, tanpa spasi di awalnya.

  • Contoh konten terkompresi Gzip

    #include
    https://ecs-image-test.oss-cn-hangzhou.aliyuncs.com/userdata/myscript.gz

    Contoh ini menunjukkan file Include yang berisi tautan ke konten terkompresi Gzip. Setelah cloud-init membaca konten terkompresi Gzip tersebut, cloud-init secara otomatis mendekompresi dan menjalankannya. Konten Gzip tersebut merupakan skrip User-Data terkompresi, yang hanya dijalankan sekali saat instans pertama kali dijalankan.

Upstart Job

Catatan

Untuk menggunakan Upstart Job, Anda harus menginstal layanan upstart pada instans. Sistem operasi yang mendukung penggunaan layanan upstart untuk mengelola perilaku startup meliputi CentOS 6, Ubuntu 10/12/14, dan Debian 6/7.

  • Ikhtisar

    Upstart adalah sistem inisialisasi berbasis event. Upstart Job adalah file konfigurasi yang menentukan kapan layanan atau tugas dimulai, dihentikan, dan cara menjalankannya. File ini biasanya ditempatkan di direktori /etc/init/ dengan ekstensi nama file .conf.

  • Frekuensi eksekusi

    • Jalankan instans: Dijalankan secara otomatis setiap kali instans dijalankan.

    • Ganti sistem operasi: Dijalankan secara otomatis.

    • Inisialisasi ulang disk sistem: Dijalankan secara otomatis.

      Penting

      Skrip tidak dijalankan secara otomatis dalam kasus berikut:

      • Jika Anda menggunakan custom image yang dibuat dari instans sumber untuk mengganti sistem operasi, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.

      • Jika Anda menggunakan custom image untuk membuat instans, disk sistem instans tersebut sudah berisi data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.

  • Format

    Baris pertama harus berupa #upstart-job, tanpa spasi di awalnya.

  • Contoh konten Upstart Job

    #upstart-job
    description "upstart test"
    start on runlevel [2345] # Executes at run levels 2, 3, 4, and 5
    stop on runlevel [!2345] # Does not execute at run levels other than 2, 3, 4, and 5
    exec echo "Hello World. The time is now $(date -R)!" | tee /root/output.txt

    Upstart Job contoh ini menghasilkan pesan dengan cap waktu saat sistem memasuki run level yang ditentukan dan mencatat pesan tersebut ke file /root/output.txt. Tugas ini berhenti berjalan saat sistem meninggalkan run level tersebut.

File multi-part MIME

  • Ikhtisar

    File multi-part MIME dapat mentransmisikan beberapa jenis instruksi. Misalnya, Anda dapat menggunakan file multi-part MIME untuk menyertakan text/cloud-config (untuk konfigurasi cloud-init) dan text/x-shellscript (skrip shell) dalam user data. Cloud-init mengurai dan menjalankan instruksi-instruksi berbeda ini secara terpisah.

  • Frekuensi eksekusi

    • Jalankan instans: Bergantung pada tipe setiap bagian dalam pesan MIME dan konfigurasi cloud-init. Misalnya, jika tipe konten dalam pesan MIME adalah skrip User-Data, skrip tersebut hanya dijalankan sekali saat instans pertama kali dijalankan. Jika tipe kontennya adalah data Cloud Config, skrip tersebut mengikuti frekuensi eksekusi data Cloud Config.

    • Ganti sistem operasi: Dijalankan secara otomatis.

    • Inisialisasi ulang disk sistem: Dijalankan secara otomatis.

      Penting

      Skrip tidak dijalankan secara otomatis dalam kasus berikut:

      • Jika Anda menggunakan custom image yang dibuat dari instans sumber untuk mengganti sistem operasi, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.

      • Jika Anda menggunakan custom image untuk membuat instans, disk sistem instans tersebut sudah berisi data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.

  • Format

    • Baris pertama adalah Content-Type: multipart/mixed; boundary="****". Boundary dapat disesuaikan, dan tidak boleh ada spasi di awal baris.

    • Baris kedua menentukan versi MIME-Version: 1.0. Bidang ini biasanya diperlukan dalam setiap pesan MIME.

  • Contoh file multi-part MIME

    Content-Type: multipart/mixed; boundary="//"
    MIME-Version: 1.0
    
    --//
    Content-Type: text/cloud-config; charset="us-ascii"
    MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit
    Content-Disposition: attachment; filename="cloud-config.txt"
    
    #cloud-config
    runcmd:
    - [ mkdir, /test-cloudinit ]
    write_files:
    - path: /test-cloudinit/cloud-init.txt
      content: |
        Created by cloud-init
      append: true
    
    --//
    Content-Type: text/x-shellscript; charset="us-ascii"
    MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit
    Content-Disposition: attachment; filename="userdata.txt"
    
    #!/bin/bash
    mkdir test-userscript
    touch /test-userscript/userscript.txt
    echo "Created by bash shell script" >> /test-userscript/userscript.txt
    --//--

    File multi-part MIME contoh ini berisi instruksi cloud-init dan skrip Bash shell:

    • Instruksi cloud-init membuat file (/test-cloudinit/cloud-init.txt) dan menulis Created by cloud-init ke dalamnya.

    • Skrip Bash shell membuat file (/test-userscript/userscript.txt) dan menulis Created by bash shell script ke dalamnya.

Instans Windows

Instans Windows menjalankan skrip user data menggunakan plugin Plugin_Main_CloudinitUserData dari tool Vminit. Plugin ini hanya mendukung menjalankan skrip saat instans pertama kali dijalankan. Plugin ini mendukung skrip Bat dan PowerShell.

Skrip Bat

  • Frekuensi eksekusi

    • Jalankan instans: Hanya dijalankan sekali saat instans pertama kali dijalankan. Skrip tidak dijalankan lagi saat instans direstart.

    • Ganti sistem operasi: Dijalankan secara otomatis.

    • Inisialisasi ulang disk sistem: Dijalankan secara otomatis.

      Penting

      Skrip tidak dijalankan secara otomatis dalam kasus berikut:

      • Jika Anda menggunakan custom image yang dibuat dari instans sumber untuk mengganti sistem operasi, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.

      • Jika Anda menggunakan custom image untuk membuat instans, disk sistem instans tersebut sudah berisi data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.

  • Format

    • Baris pertama harus berupa [bat], tanpa spasi di awalnya.

    • Gunakan hanya karakter half-width. Jangan memasukkan karakter tambahan.

    • Jangan menulis data ke direktori C:\Users. Jika tidak, user data gagal dijalankan.

      Catatan

      Di Windows, C:\Users dan subdirektorinya hanya dapat diakses setelah login. User data dijalankan selama inisialisasi sistem sebelum login, sehingga penulisan ke C:\Users gagal.

  • Contoh skrip Bat

    • Jalankan skrip kustom

      [bat]
      echo "bat test" > C:\userdata_test.txt

      Skrip Bat contoh ini menulis "bat test" ke file userdata_test.txt saat instans pertama kali dijalankan.

Skrip PowerShell

  • Frekuensi eksekusi

    • Jalankan instans: Hanya dijalankan sekali saat instans pertama kali dijalankan. Skrip tidak dijalankan lagi saat instans direstart.

    • Ganti sistem operasi: Dijalankan secara otomatis.

    • Inisialisasi ulang disk sistem: Dijalankan secara otomatis.

      Penting

      Skrip tidak dijalankan secara otomatis dalam kasus berikut:

      • Jika Anda menggunakan custom image yang dibuat dari instans sumber untuk mengganti sistem operasi, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.

      • Jika Anda menggunakan custom image untuk membuat instans, disk sistem instans tersebut sudah berisi data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.

  • Format

    • Baris pertama harus berupa [powershell], tanpa spasi di awalnya.

    • Gunakan hanya karakter half-width. Jangan memasukkan karakter tambahan.

    • Jangan menulis data ke direktori C:\Users. Jika tidak, user data gagal dijalankan.

      Catatan

      Di Windows, C:\Users dan subdirektorinya hanya dapat diakses setelah login. User data dijalankan selama inisialisasi sistem sebelum login, sehingga penulisan ke C:\Users gagal.

  • Contoh skrip PowerShell

    • Jalankan skrip kustom

      [powershell]
      write-output "powershell test" | Out-File C:\userdata_test.txt

      Skrip PowerShell contoh ini menulis powershell test ke file userdata_test.txt saat instans pertama kali dijalankan.

2. Gunakan user data saat membuat instans

  • Buat instans di konsol

    Pada halaman pembelian instans, perluas bagian Advanced Options. Di bagian User Data, masukkan user data.

    Penting

    Jika user data Anda sudah dienkripsi Base64, pilih The user data is Base64-encoded. Data asli yang belum dienkripsi tidak boleh melebihi 32 KB. Jika Anda memberikan teks biasa, jangan pilih opsi ini. Sistem akan secara otomatis mengenkripsi konten untuk Anda.

  • Buat instans dengan memanggil API

    Jika Anda membuat instans dengan memanggil API, tentukan parameter UserData dalam operasi RunInstances atau CreateInstance.

3. Verifikasi bahwa user data dijalankan sesuai harapan

Anda harus memverifikasi bahwa skrip kustom dijalankan sesuai harapan berdasarkan kontennya. Contoh berikut menunjukkan cara memverifikasi eksekusi skrip User-Data yang diteruskan ke instans Linux.

#!/bin/sh
echo "Hello World. The time is now $(date -R)!" | tee /root/userdata_test.txt

Dalam contoh ini, skrip User-Data menulis waktu sistem ke file userdata_test.txt saat instans pertama kali dijalankan. Untuk memverifikasi eksekusi skrip, jalankan perintah cat userdata_test.txt untuk memeriksa hasilnya. Waktu sistem ditulis ke file userdata_test.txt.

view-result

Catatan

Jika terjadi masalah saat skrip User-Data dijalankan, Anda dapat menjalankan perintah Cloud Assistant umum ACS-ECS-UserData-Check-for-linux.sh untuk mendapatkan log error. Jika pesan error dikembalikan, skrip gagal dijalankan. Jika tidak ada pesan error yang dikembalikan, skrip dijalankan tanpa error, dan Anda harus menyelidiki potensi masalah lainnya. Untuk informasi selengkapnya tentang perintah Cloud Assistant umum, lihat Lihat dan jalankan perintah publik.

Operasi lainnya

Lihat user data instans yang sudah ada

Setelah user data diteruskan ke instans, Anda dapat melihat user data tersebut menggunakan layanan metadata atau di konsol.

Ambil user data dari layanan metadata (mode security-hardened)

  • Instans Linux

    TOKEN=`curl -X PUT "http://100.100.100.200/latest/api/token" -H "X-aliyun-ecs-metadata-token-ttl-seconds:180"`
    curl -H "X-aliyun-ecs-metadata-token: $TOKEN" http://100.100.100.200/latest/user-data
  • Instans Windows

    $token = Invoke-RestMethod -Headers @{"X-aliyun-ecs-metadata-token-ttl-seconds" = "180"} -Method PUT -Uri http://100.100.100.200/latest/api/token
    Invoke-RestMethod -Headers @{"X-aliyun-ecs-metadata-token" = $token} -Method GET -Uri http://100.100.100.200/latest/user-data
Catatan
  • Pada contoh sebelumnya, periode validitas token adalah 180 detik. Anda dapat menyesuaikan periode validitas berdasarkan skenario Anda.

  • Contoh ini menggunakan mode security-hardened layanan metadata untuk mengambil metadata. Untuk informasi selengkapnya tentang cara mengambil informasi dari layanan metadata, lihat Metadata instans.

  • Untuk informasi selengkapnya tentang metadata, lihat Metadata instans.

Ambil dari konsol

  1. Pastikan instans berada dalam status Stopped.

    Penting

    Jika instans berjenis pay-as-you-go dan berada dalam VPC, kami menyarankan Anda mengatur Stop Mode ke Standard Mode saat menghentikan instans. Jika Anda memilih Economical Mode, sumber daya komputasi (vCPU dan memori) dilepas. Akibatnya, instans mungkin gagal dijalankan ulang karena stok tidak mencukupi. Untuk informasi selengkapnya, lihat Mode ekonomis.

  2. Klik ID instans target untuk membuka halaman detail instans. Klik All Actions untuk memperluas panel operasi. Cari dan klik Set User Data. Kemudian, di bagian User Data, lihat user data yang telah dikonfigurasi.

Ambil dengan memanggil API

Anda dapat memanggil operasi DescribeUserData untuk menanyakan user data Instance ECS. Untuk informasi selengkapnya, lihat DescribeUserData.

Ubah user data instans yang sudah ada

Untuk mengubah user data instans yang sudah ada, lakukan operasi berikut di konsol.

  1. Pastikan instans berada dalam status Stopped.

    Penting

    Jika instans berjenis pay-as-you-go dan berada dalam VPC, kami menyarankan Anda mengatur Stop Mode ke Standard Mode saat menghentikan instans. Jika Anda memilih Economical Mode, sumber daya komputasi (vCPU dan memori) dilepas. Akibatnya, instans mungkin gagal dijalankan ulang karena stok tidak mencukupi. Untuk informasi selengkapnya, lihat Mode ekonomis.

  2. Klik ID instans target untuk membuka halaman detail instans. Klik All Actions untuk memperluas panel operasi. Cari dan klik Set User Data. Kemudian, di bagian User Data, masukkan user data.

Penting

Setelah Anda mengubah user data instans yang sudah ada, apakah skrip user data dijalankan setelah instans dijalankan bergantung pada format user data dan frekuensi eksekusinya. Pahami kebutuhan Anda sebelum mengubah user data. Untuk informasi selengkapnya, lihat Format data pengguna dan frekuensi eksekusi.

Referensi