阿里云命令行工具(Alibaba Cloud Command Line Interface)可直接訪問EDAS的OpenAPI,您可使用SDK調(diào)用EDAS的API來部署Spring Cloud、Dubbo和HSF框架的應(yīng)用。本文介紹如何使用阿里云CLI部署Demo應(yīng)用至EDAS的ECS集群。

前提條件

已創(chuàng)建ECS實例。具體操作,請參見創(chuàng)建ECS實例

安裝阿里云CLI

阿里云CLI支持macOS、Linux和Windows。

各操作系統(tǒng)的安裝步驟請參見:

配置AccessKey憑證

在使用阿里云CLI前,您需要運(yùn)行aliyun configure命令配置調(diào)用阿里云賬號的AccessKey、地域、語言等信息。

說明 您可以在安全信息管理頁面創(chuàng)建和查看您的AccessKey,或者聯(lián)系您的系統(tǒng)管理員獲取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快速創(chuàng)建應(yīng)用

參考以下腳本,快速在ECS集群中創(chuàng)建一個應(yīng)用。

#!/bin/bash

# 希望部署的地域
REGION="cn-beijing"
# ECS實例ID
ECS_ID="i-2z************b6"
# ECS所在的VPC ID
VPC_ID="vpc-t**********c"
# 微服務(wù)空間名(若不存在會自動創(chuàng)建)
NAMESPACE="myNamespace"
# 集群名(會自動創(chuàng)建)
CLUSTER_NAME="myCluster"
# 應(yīng)用名APP_NAME="myApp"

# Step1: 創(chuàng)建微服務(wù)空間
aliyun edas InsertOrUpdateRegion --RegionTag $REGION:$NAMESPACE --RegionName $NAMESPACE --region $REGION --endpoint "edas.cn-beijing.aliyuncs.com" >> /dev/null

# Step2: 創(chuàng)建集群
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: 導(dǎo)入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: 創(chuàng)建應(yīng)用
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快速部署應(yīng)用

在阿里云CLI中執(zhí)行以下代碼快速部署應(yīng)用。

重要 以下代碼內(nèi)的參數(shù)均為示例參數(shù),APP_IDGROUP_ID為應(yīng)用配置參數(shù),請?zhí)鎿Q成您的應(yīng)用參數(shù)。
#!/bin/bash

# 待部署應(yīng)用ID(詳情請參見步驟5。)
APP_ID="87a6*********************4d1"
# 應(yīng)用分組ID
GROUP_ID="54b*********************f27"
# 上傳的OSS Bucket名(該Bucket需要公共可讀)
OSS_BUCKET="eda*****mo"
# 安裝包文件(由您的CI系統(tǒng)構(gòu)建生成)
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: 發(fā)起部署請求
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

若您不知如何設(shè)置以上參數(shù)值,請根據(jù)以下步驟獲取。

  1. 登錄EDAS控制臺
  2. 在左側(cè)導(dǎo)航欄,選擇應(yīng)用管理 > 應(yīng)用列表,在應(yīng)用列表頁面單擊需要部署的應(yīng)用名稱。
  3. 在應(yīng)用基本信息頁面右上角,單擊部署應(yīng)用
  4. 部署模式選擇頁面的常規(guī)發(fā)布(單批/多批)區(qū)域的右上角,單擊開始部署
  5. 常規(guī)發(fā)布(單批/多批)頁面下方,展開生成Maven插件配置,即可獲取部署應(yīng)用的參數(shù)信息。
    生成Maven插件配置

執(zhí)行結(jié)果

應(yīng)用部署完成后您可參照以下步驟查看應(yīng)用的部署情況。

  1. 登錄EDAS控制臺
  2. 在左側(cè)導(dǎo)航欄,選擇應(yīng)用管理 > 應(yīng)用列表
  3. 單擊創(chuàng)建的應(yīng)用名稱,在應(yīng)用基本信息頁面,單擊實例部署信息頁簽。

    如果應(yīng)用實例的運(yùn)行狀態(tài)為運(yùn)行正常說明部署成功。

    說明 如果應(yīng)用部署失敗,您可以參考變更流程錯誤碼說明進(jìn)行問題排查,詳情請參見變更流程錯誤碼說明

相關(guān)鏈接

EDAS開發(fā)者工具交流群

如果您在EDAS中使用開發(fā)者工具的過程中有任何疑問或建議,請使用釘釘搜索釘釘群號34556175加入釘釘群進(jìn)行反饋。