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:
| Langkah | API | Tujuan |
|---|---|---|
| 1 | InsertOrUpdateRegion | Membuat ruang mikroservis — batas isolasi logis untuk layanan Anda |
| 2 | InsertCluster | Membuat kluster ECS — kelompok sumber daya yang menjalankan aplikasi Anda |
| 3 | TransformClusterMember | Mengimpor instans ECS yang sudah ada ke dalam kluster |
| 4 | InsertApplication | Mendaftarkan aplikasi di EDAS |
| 5 | DeployApplication | Mengunggah 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.
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| Placeholder | Deskripsi |
|---|---|
<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:
| Variabel | Deskripsi | Contoh |
|---|---|---|
REGION | Wilayah tempat aplikasi diterapkan | cn-beijing |
ECS_ID | ID instans ECS yang akan diimpor | i-2z************b6 |
VPC_ID | ID Virtual Private Cloud (VPC) tempat instans ECS berada | vpc-t**********c |
NAMESPACE | Nama untuk ruang mikroservis (dibuat otomatis jika belum ada) | myNamespace |
CLUSTER_NAME | Nama untuk kluster ECS (dibuat otomatis jika belum ada) | myCluster |
APP_NAME | Nama untuk aplikasi | myApp |
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/nullLangkah 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"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:
| Variabel | Deskripsi | Contoh |
|---|---|---|
APP_ID | ID aplikasi dari bagian sebelumnya, atau dari konsol EDAS | 87a6*********************4d1 |
GROUP_ID | ID kelompok aplikasi | 54b*********************f27 |
OSS_BUCKET | Bucket OSS yang dapat dibaca publik untuk paket penyebaran | eda*****mo |
PACKAGE | Jalur lokal ke file WAR atau JAR | hello-edas.war |
APP_ID="87a6*********************4d1"
GROUP_ID="54b*********************f27"
OSS_BUCKET="eda*****mo"
PACKAGE="hello-edas.war"
VERSION=$(date +%s) # Versi berbasis cap waktuLangkah 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:
Masuk ke Konsol EDAS.
Pada panel navigasi kiri, pilih Application Management > Applications, lalu klik nama aplikasi Anda.
Di pojok kanan atas tab Basic Information, klik Deploy.
Pada halaman Select Deployment Mode, klik Start Deployment di samping Regular Release (Single-batch/Multi-batch).
Klik Generate Maven Plug-in Configuration untuk melihat nilai parameter.

Verifikasi penyebaran
Setelah skrip penyebaran selesai, pastikan aplikasi sedang berjalan:
Masuk ke Konsol EDAS.
Pada panel navigasi kiri, pilih Application Management > Applications.
Klik nama aplikasi yang telah disebar, lalu klik tab Instance Information di samping Basic Information.
Penyebaran berhasil jika status instans menunjukkan Normal.
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.