All Products
Search
Document Center

Enterprise Distributed Application Service:Menyebar aplikasi ke kluster ECS menggunakan Alibaba Cloud CLI

Last Updated:Mar 11, 2026

Saat perlu mengotomatisasi penyebaran aplikasi ke Enterprise Distributed Application Service (EDAS)—misalnya, dari pipeline CI/CD atau skrip provisioning—Alibaba Cloud CLI memungkinkan Anda membuat namespace, kluster, dan aplikasi, lalu menyebarkan paket WAR atau JAR, semuanya tanpa meninggalkan terminal.

EDAS mendukung aplikasi Spring Cloud, Dubbo, dan High-speed Service Framework (HSF) melalui SDK dan API-nya.

Ikhtisar alur kerja

Penyebaran aplikasi ke kluster Elastic Compute Service (ECS) melibatkan operasi API utama berikut:

LangkahAPITujuan
1InsertOrUpdateRegionMembuat ruang mikroservis — batas isolasi logis untuk layanan Anda
2InsertClusterMembuat kluster ECS — kelompok sumber daya yang menjalankan aplikasi Anda
3TransformClusterMemberMengimpor instans ECS yang sudah ada ke dalam kluster
4InsertApplicationMendaftarkan aplikasi di EDAS
5DeployApplicationMengunggah paket WAR atau JAR ke Object Storage Service (OSS) dan memicu penyebaran

Bagian berikut menjelaskan setiap langkah secara rinci.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Instans ECS yang sedang berjalan. Untuk informasi lebih lanjut, lihat Buat instans ECS.

  • Alibaba Cloud CLI yang telah diinstal untuk sistem operasi Anda:

  • ossutil yang telah diinstal untuk mengunggah paket penyebaran ke OSS.

Konfigurasi Alibaba Cloud CLI

Jalankan aliyun configure untuk mengatur pasangan AccessKey, wilayah default, dan format output Anda.

Catatan Buat atau lihat pasangan AccessKey Anda di halaman Security Management pada konsol Manajemen Pengguna. Hubungi administrator Anda jika Anda belum memilikinya.
aliyun configure
Configuring profile 'default' ...
Aliyun Access Key ID [None]: <your-access-key-id>
Aliyun Access Key Secret [None]: <your-access-key-secret>
Default Region Id [None]: cn-hangzhou
Default output format [json]: json
Default Language [zh]: zh
PlaceholderDeskripsi
<your-access-key-id>ID AccessKey Anda
<your-access-key-secret>Rahasia AccessKey Anda

Setelah konfigurasi selesai, CLI akan menampilkan banner Configure Done!!!.

Buat aplikasi di kluster ECS

Langkah-langkah berikut mencakup empat panggilan API pertama dari ikhtisar alur kerja: membuat namespace, membuat kluster, mengimpor instans ECS, dan mendaftarkan aplikasi.

Sebelum menjalankan perintah, ganti variabel placeholder dengan nilai aktual Anda:

VariabelDeskripsiContoh
REGIONWilayah tempat aplikasi diterapkancn-beijing
ECS_IDID instans ECS yang akan diimpori-2z************b6
VPC_IDID Virtual Private Cloud (VPC) tempat instans ECS beradavpc-t**********c
NAMESPACENama untuk ruang mikroservis (dibuat otomatis jika belum ada)myNamespace
CLUSTER_NAMENama untuk kluster ECS (dibuat otomatis jika belum ada)myCluster
APP_NAMENama untuk aplikasimyApp

Tetapkan variabel

REGION="cn-beijing"
ECS_ID="i-2z************b6"
VPC_ID="vpc-t**********c"
NAMESPACE="myNamespace"
CLUSTER_NAME="myCluster"
APP_NAME="myApp"

Langkah 1: Buat ruang mikroservis

Buat namespace dengan tag <region>:<namespace>:

aliyun edas InsertOrUpdateRegion \
  --RegionTag "$REGION:$NAMESPACE" \
  --RegionName "$NAMESPACE" \
  --region "$REGION" \
  --endpoint "edas.cn-beijing.aliyuncs.com" >> /dev/null

Langkah 2: Buat kluster ECS

Buat kluster ECS mode VPC (ClusterType 2, NetworkMode 2) dan simpan ID kluster:

CLUSTER_ID=$(aliyun edas InsertCluster \
  --ClusterName "$CLUSTER_NAME" \
  --ClusterType 2 \
  --NetworkMode 2 \
  --VpcId "$VPC_ID" \
  --logicalRegionId "$REGION:$NAMESPACE" \
  --region "$REGION" \
  --endpoint "edas.cn-beijing.aliyuncs.com" \
  | sed -E 's/.*"ClusterId":"([a-z0-9-]*)".*/\1/g')

echo "Cluster ID: $CLUSTER_ID"

Langkah 3: Impor instans ECS

Impor instans ECS ke dalam kluster. Skrip ini melakukan polling terhadap ListClusterMembers hingga 300 detik sampai instans melaporkan ID ECU-nya:

aliyun edas TransformClusterMember \
  --InstanceIds "$ECS_ID" \
  --TargetClusterId "$CLUSTER_ID" \
  --Password Hello1234 >> /dev/null

for i in $(seq 300); do
  OUT=$(aliyun edas ListClusterMembers --ClusterId "$CLUSTER_ID" | grep EcuId) && break
  sleep 1
done
ECU_ID=$(echo "$OUT" | sed -E 's/.*"EcuId":"([a-z0-9-]*)".*/\1/g')

echo "ECU ID: $ECU_ID"
Catatan Proses impor dapat memakan waktu beberapa menit. Loop ini memeriksa sekali per detik hingga maksimal 5 menit.

Langkah 4: Buat aplikasi

Daftarkan aplikasi dengan BuildPackId 51 dan ECU dari Langkah 3:

APP_ID=$(aliyun edas InsertApplication \
  --ApplicationName "$APP_NAME" \
  --BuildPackId 51 \
  --EcuInfo "$ECU_ID" \
  --ClusterId "$CLUSTER_ID" \
  --logicalRegionId "$REGION:$NAMESPACE" \
  | sed -E 's/.*"AppId":"([a-z0-9-]*)".*/\1/g')

echo "Aplikasi berhasil dibuat. ID Aplikasi: $APP_ID"

Simpan nilai APP_ID untuk langkah penyebaran.

Sebarkan aplikasi

Setelah aplikasi dibuat, sebarkan paket WAR atau JAR. Langkah-langkah berikut mengunggah paket ke bucket OSS, mengirim permintaan penyebaran asinkron, dan melakukan polling hingga penyebaran selesai.

Variabel

Ganti variabel berikut dengan nilai aktual Anda:

VariabelDeskripsiContoh
APP_IDID aplikasi dari bagian sebelumnya, atau dari konsol EDAS87a6*********************4d1
GROUP_IDID kelompok aplikasi54b*********************f27
OSS_BUCKETBucket OSS yang dapat dibaca publik untuk paket penyebaraneda*****mo
PACKAGEJalur lokal ke file WAR atau JARhello-edas.war
APP_ID="87a6*********************4d1"
GROUP_ID="54b*********************f27"
OSS_BUCKET="eda*****mo"
PACKAGE="hello-edas.war"
VERSION=$(date +%s)    # Versi berbasis cap waktu

Langkah 1: Unggah paket penyebaran ke OSS

ossutil cp -f "$PACKAGE" "oss://$OSS_BUCKET/$PACKAGE" >> /dev/null
PKG_URL=$(ossutil sign "oss://$OSS_BUCKET/$PACKAGE" | head -1)

echo "URL Paket: $PKG_URL"

Langkah 2: Picu penyebaran

CO_ID=$(aliyun edas DeployApplication \
  --AppId "$APP_ID" \
  --PackageVersion "$VERSION" \
  --DeployType url \
  --WarUrl "$PKG_URL" \
  --GroupId "$GROUP_ID" \
  | grep '.*"ChangeOrderId":' \
  | sed -E 's/.*"ChangeOrderId":\s"([a-z0-9-]*)".*/\1/g')

echo "ID pesanan perubahan: $CO_ID"

Langkah 3: Tunggu hingga penyebaran selesai

Skrip ini melakukan polling terhadap GetChangeOrderInfo hingga 300 detik. Nilai PipelineStatus sebesar 2 menunjukkan keberhasilan:

for i in $(seq 300); do
  STATUS=$(aliyun edas GetChangeOrderInfo --ChangeOrderId "$CO_ID" \
    | grep '.*"PipelineStatus":' \
    | sed -E 's/.*"PipelineStatus":\s(.).*/\1/g')
  [[ 2 = ${STATUS} ]] && break
  sleep 1
done

echo "Penyebaran selesai. ID pesanan perubahan: $CO_ID"

Cari APP_ID dan GROUP_ID di konsol

Jika Anda tidak memiliki nilai-nilai ini dari langkah pembuatan, ambil dari konsol EDAS:

  1. Masuk ke Konsol EDAS.

  2. Pada panel navigasi kiri, pilih Application Management > Applications, lalu klik nama aplikasi Anda.

  3. Di pojok kanan atas tab Basic Information, klik Deploy.

  4. Pada halaman Select Deployment Mode, klik Start Deployment di samping Regular Release (Single-batch/Multi-batch).

  5. Klik Generate Maven Plug-in Configuration untuk melihat nilai parameter.

Generate Maven Plug-in Configuration

Verifikasi penyebaran

Setelah skrip penyebaran selesai, pastikan aplikasi sedang berjalan:

  1. Masuk ke Konsol EDAS.

  2. Pada panel navigasi kiri, pilih Application Management > Applications.

  3. Klik nama aplikasi yang telah disebar, lalu klik tab Instance Information di samping Basic Information.

Penyebaran berhasil jika status instans menunjukkan Normal.

Catatan Jika penyebaran gagal, lihat Kode error yang mungkin dikembalikan dalam proses perubahan untuk troubleshooting.

Lihat juga

Komunitas alat developer EDAS

Jika Anda memiliki pertanyaan atau saran tentang penggunaan alat developer di EDAS, Anda dapat bergabung dengan grup DingTalk dengan mencari ID 34556175 di DingTalk.