阿里雲命令列工具(Alibaba Cloud Command Line Interface)可直接存取EDAS的OpenAPI,您可使用SDK調用EDAS的API來部署Spring Cloud、Dubbo和HSF架構的應用。本文介紹如何使用阿里雲CLI部署Demo應用至EDAS的ECS叢集。
前提條件
已建立ECS執行個體。具體操作,請參見建立ECS執行個體。
安裝阿里雲CLI
阿里雲CLI支援macOS、Linux和Windows。
各作業系統的安裝步驟請參見:
配置AccessKey憑證
在使用阿里雲CLI前,您需要運行aliyun configure命令配置調用阿里雲帳號的AccessKey、地區、語言等資訊。
說明 您可以在安全資訊管理頁面建立和查看您的AccessKey,或者聯絡您的系統管理員擷取AccessKey。
aliyun configure
Configuring profile 'default' ...
Aliyun Access Key ID [None]: <Your AccessKey ID>
Aliyun Access Key Secret [None]: <Your AccessKey Secret>
Default Region Id [None]: cn-hangzhou
Default output format [json]: json
Default Language [zh]: zh
配置完成後,若配置憑證有效,將顯示以下資訊:
Configure Done!!!
..............888888888888888888888 ........=8888888888888888888D=..............
...........88888888888888888888888 ..........D8888888888888888888888I...........
.........,8888888888888ZI: ...........................=Z88D8888888888D..........
.........+88888888 ..........................................88888888D..........
.........+88888888 .......Welcome to use Alibaba Cloud.......O8888888D..........
.........+88888888 ............. ************* ..............O8888888D..........
.........+88888888 .... Command Line Interface(Reloaded) ....O8888888D..........
.........+88888888...........................................88888888D..........
..........D888888888888DO+. ..........................?ND888888888888D..........
...........O8888888888888888888888...........D8888888888888888888888=...........
............ .:D8888888888888888888.........78888888888888888888O ..............
使用CLI快速建立應用
參考以下指令碼,快速在ECS叢集中建立一個應用。
#!/bin/bash
# 希望部署的地區
REGION="cn-beijing"
# ECS執行個體ID
ECS_ID="i-2z************b6"
# ECS所在的VPC ID
VPC_ID="vpc-t**********c"
# 微服務空間名(若不存在會自動建立)
NAMESPACE="myNamespace"
# 叢集名(會自動建立)
CLUSTER_NAME="myCluster"
# 應用程式名稱APP_NAME="myApp"
# Step1: 建立微服務空間
aliyun edas InsertOrUpdateRegion --RegionTag $REGION:$NAMESPACE --RegionName $NAMESPACE --region $REGION --endpoint "edas.cn-beijing.aliyuncs.com" >> /dev/null
# Step2: 建立叢集
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'`
# Step3: 匯入ECS執行個體
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'`
# Step4: 建立應用
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'`
printf "An application is created by CLI, App ID:"$APP_ID"\n"
使用CLI快速部署應用
在阿里雲CLI中執行以下代碼快速部署應用。
重要 以下代碼內的參數均為樣本參數,APP_ID和GROUP_ID為應用配置參數,請替換成您的應用參數。
#!/bin/bash
# 待部署應用ID(詳情請參見步驟5。)
APP_ID="87a6*********************4d1"
# 應用分組ID
GROUP_ID="54b*********************f27"
# 上傳的OSS Bucket名(該Bucket需要公用可讀)
OSS_BUCKET="eda*****mo"
# 安裝包檔案(由您的CI系統構建產生)
PACKAGE="hello-edas.war"
# 版本號碼,建議使用時間戳
VERSION=`date +%s`
# Step1: 上傳部署套件到OSS
ossutil cp -f $PACKAGE oss://$OSS_BUCKET/$PACKAGE >> /dev/null
PKG_URL=`ossutil sign oss://$OSS_BUCKET/$PACKAGE|head -1`
# Step2: 發起部署請求
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'`
# Step3: 等待部署完成
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
若您不知如何設定以上參數值,請根據以下步驟擷取。
登入EDAS控制台。
- 在左側導覽列,選擇 ,在應用列表頁面單擊需要部署的應用程式名稱。
- 在應用基本資料頁面右上方,單擊部署應用。
- 在部署模式選擇頁面的常規發布(單批/多批)地區的右上方,單擊開始部署。
- 在常規發布(單批/多批)頁面下方,展開產生Maven外掛程式配置,即可擷取部署應用的參數資訊。
執行結果
應用部署完成後您可參照以下步驟查看應用的部署情況。
相關連結
EDAS開發人員工具交流群
如果您在EDAS中使用開發人員工具的過程中有任何疑問或建議,請使用DingTalk搜尋DingTalk群號34556175加入DingTalk群進行反饋。