當應用源檔案儲存體在OSSObject Storage Service中時,可以使用此種類型的部署物來發布應用。
工作原理
當發布的應用分組為ESS伸縮組時,部署期間伸縮活動會被暫停,部署結束後(無論成功或失敗)將自動回復。
部署流程遵循先停後啟原則,即每次部署都會先執行停止指令碼,再執行啟動指令碼。
建立並發布部署物。
將應用源檔案資訊、啟動指令碼和停止指令碼配置為部署物。
建立發布任務,選擇發布模式,將部署物發布至目標應用分組。
發布任務的自動化部署流程。
擷取部署物資訊,包括OSS檔案的資訊和應用的啟動/停止指令碼。
下載檔案:OSS檔案被自動下載到工作目錄。
執行停止指令碼:執行應用停止指令碼,停止舊版本應用。
執行啟動指令碼:執行應用啟動指令碼,啟動新版本應用。
適用範圍
僅支援部署到Linux執行個體。
啟動和停止指令碼僅支援Shell類型的指令碼。
操作步驟
建立應用並匯入ECS執行個體。
如果沒有ECS執行個體,前往ECS控制台-自訂購買頁面,建立Linux作業系統的ECS執行個體。
建議ECS鏡像選擇Alibaba Cloud Linux 3.2104 LTS 64位或Ubuntu 22.04 64位。後續樣本中的指令碼基於這兩種鏡像編寫。如果使用其他鏡像,請參考樣本並根據實際情況修改指令碼。
前往ECS控制台-應用管理頁面,單擊匯入已有資源建立,建立應用和應用分組,並匯入ECS執行個體到應用分組。
建立OSS部署物。
前往ECS控制台-應用管理頁面,在我的應用程式頁簽下,單擊目標應用程式名稱。
在應用詳情頁,選擇部署物頁簽,然後單擊建立部署物。
在建立部署物頁面,部署物類型選擇OSS檔案,設定參數後單擊確定儲存。
OSS檔案資訊:設定JAR包所在的OSS Bucket和檔案路徑。
如果ECS執行個體和OSS Bucket在同一地區,可勾選內網下載提高下載速度。
工作目錄:設定應用啟動/停止指令碼的執行目錄。OSS檔案會被自動下載到該目錄。樣本:
/root/deploy。Alibaba Cloud Linux
start_application() { set -e yum install -y maven-3.5.4 java -jar ./sample-spring-1.0-SNAPSHOT.jar & } start_applicationUbuntu
start_application() { set -e apt update apt install -y maven java -jar ./sample-spring-1.0-SNAPSHOT.jar & } start_application### Stop the application (if any) stop_application() { PID=$(ps -ef | grep "sample-spring-1.0-SNAPSHOT.jar" | grep -v "grep" | awk '{print $2}') if [ -n "$PID" ]; then kill -9 $PID fi } stop_application
返回部署物列表,找到剛建立的部署物,單擊發布。選擇目標分組,單擊確定開始部署。
結果驗證。
進入目標執行個體詳情頁,單擊遠端連線,選擇通過Workbench遠端連線。根據頁面提示登入,進入終端頁面。
執行
curl http://localhost:8080/hello命令。返回Alibaba Spring Sample!表示部署成功。
重要欄位
欄位 | 說明 |
OSS地區 | 源檔案所在的OSS Bucket的地區。 |
OSS Bucket | 源檔案所在的OSS Bucket。 |
OSS 檔案 | OSS Bucket中的源檔案對象(Object)。 |
OSS檔案版本 | 指定檔案的特定版本ID。僅當Bucket開啟版本控制時需要填寫。如果未開啟版本控制,請留空。 |
內網下載 | 當ECS執行個體與OSS Bucket在同一地區時,可選擇內網下載。 |
工作目錄 | 應用源檔案的下載路徑,同時也是啟動和停止指令碼的執行目錄。
|
應用啟動指令碼 | 用於啟動應用的Shell指令碼。 |
應用停止指令碼 | 用於停止應用的Shell指令碼。 例如,以下指令碼可停止名為 |