設(shè)置應(yīng)用生命周期掛載腳本
如果您希望在應(yīng)用生命周期中的不同階段(例如啟動(dòng)、重啟或停止)配置特定的腳本或代碼,用于執(zhí)行相關(guān)任務(wù)。您可以在ECS實(shí)例上設(shè)置應(yīng)用生命周期掛載腳本,在事件發(fā)生時(shí),可以自動(dòng)執(zhí)行自定義腳本。
掛載腳本定義說(shuō)明
生命周期掛載腳本的運(yùn)行過(guò)程圖示意如下:
腳本執(zhí)行須知:
腳本采用
root
用戶執(zhí)行。腳本執(zhí)行時(shí)間最長(zhǎng)為600s,當(dāng)執(zhí)行時(shí)間超過(guò)600s,將認(rèn)為超時(shí)導(dǎo)致腳本執(zhí)行失敗。
腳本可能被重復(fù)執(zhí)行,需要腳本自身保證重復(fù)執(zhí)行的正確性,例如:腳本應(yīng)避免將相同的配置項(xiàng)追加到同一配置文件。
腳本在獨(dú)立的進(jìn)程中執(zhí)行,與應(yīng)用進(jìn)程無(wú)關(guān)。
如需設(shè)置環(huán)境變量在應(yīng)用啟動(dòng)后使用,建議將環(huán)境變量寫入到/home/admin/.bashrc中。
腳本通過(guò)ECS的發(fā)送遠(yuǎn)程命令執(zhí)行,命令名稱為CoCustomHookScript。
執(zhí)行結(jié)果狀態(tài):
成功:按照Linux、Unix的標(biāo)準(zhǔn),執(zhí)行退出碼為0時(shí)為成功。如命令
echo xyz
退出碼為0。失敗:執(zhí)行退出碼非0時(shí)為失敗。如命令
ls 不存在的目錄
,退出碼非0。
忽略失敗:開(kāi)啟時(shí),若
執(zhí)行結(jié)果狀態(tài)
為失敗
,則不中斷應(yīng)用變更單的執(zhí)行。不忽略失敗:當(dāng)腳本執(zhí)行失敗并且健康檢查URL通過(guò)時(shí),掛載腳本將被重復(fù)執(zhí)行。您可通過(guò)以下方法繼續(xù)執(zhí)行應(yīng)用變更:
修復(fù)相應(yīng)的腳本問(wèn)題,然后重試變更任務(wù)。
若是啟動(dòng)后掛載腳本,可在變更任務(wù)單擊略過(guò),在執(zhí)行掛載腳本這個(gè)變更單任務(wù)時(shí),將采用忽略失敗模式,變更記錄將繼續(xù)執(zhí)行。
允許輸入的腳本最大
8 KB
,若超過(guò),可將腳本放置于外部存儲(chǔ),如對(duì)象存儲(chǔ)OSS服務(wù)中,通過(guò)網(wǎng)絡(luò)下載后執(zhí)行。
設(shè)置掛載腳本
您可參照以下步驟進(jìn)入到掛載腳本的設(shè)置頁(yè)面。
登錄EDAS控制臺(tái)。
在左側(cè)導(dǎo)航欄,單擊 ,在頂部菜單欄選擇地域,并在頁(yè)面上方選擇微服務(wù)空間,然后在應(yīng)用列表頁(yè)面單擊具體的應(yīng)用名稱。
進(jìn)入應(yīng)用或應(yīng)用分組設(shè)置頁(yè)面。
應(yīng)用:在基本信息頁(yè)簽的應(yīng)用設(shè)置區(qū)域右側(cè),單擊掛載腳本。
應(yīng)用分組:?jiǎn)螕?b id="026d13a0836wo" data-tag="uicontrol" data-isbold="true" class="uicontrol">實(shí)例部署信息頁(yè)簽,在分組設(shè)置的下拉列表中選擇掛載腳本。
在掛載腳本對(duì)話框,展開(kāi)需設(shè)置的應(yīng)用生命周期的腳本,在文本框中輸入腳本內(nèi)容,然后單擊修改。
配置項(xiàng)
描述
準(zhǔn)備實(shí)例腳本
在ECS實(shí)例擴(kuò)容到應(yīng)用中時(shí)發(fā)生一次。通常可用于設(shè)置應(yīng)用相關(guān)的環(huán)境變量、hosts等。相比于cloud-init在虛擬機(jī)初始化階段觸發(fā),進(jìn)一步提供了跟應(yīng)用相關(guān)的觸發(fā)點(diǎn)。
銷毀實(shí)例腳本
ECS實(shí)例從應(yīng)用移除時(shí)發(fā)生一次。通常可用于移除應(yīng)用相關(guān)的配置等。
啟動(dòng)前腳本
通過(guò)變更觸發(fā)的應(yīng)用啟動(dòng),在應(yīng)用容器每次啟動(dòng)前,如調(diào)用Tomcat的啟動(dòng)腳本start.sh之前。
啟動(dòng)后腳本
通過(guò)變更觸發(fā)的應(yīng)用啟動(dòng),在應(yīng)用容器每次啟動(dòng)后,如調(diào)用Tomcat的啟動(dòng)腳本start.sh之后。具體觸發(fā)點(diǎn)為:當(dāng)應(yīng)用配置了健康檢查URL時(shí),則通過(guò)健康檢查后觸發(fā);若沒(méi)有配置健康檢查URL,則在端口存在后觸發(fā),不建議只使用端口檢查方式,通常在應(yīng)用未完全啟動(dòng)前,應(yīng)用容器早已經(jīng)打開(kāi)網(wǎng)絡(luò)端口。
停止前腳本
通過(guò)變更觸發(fā)的應(yīng)用停止,在應(yīng)用容器每次停止前。
停止后腳本
通過(guò)變更觸發(fā)的應(yīng)用停止,在應(yīng)用容器每次停止后。
查看執(zhí)行結(jié)果
在修改掛載腳本后,您可查看應(yīng)用變更。下圖以執(zhí)行準(zhǔn)備實(shí)例腳本為例展示執(zhí)行結(jié)果。
常見(jiàn)問(wèn)題
怎么查找發(fā)送遠(yuǎn)程命令的執(zhí)行狀態(tài)?
在變更記錄日志中的InvocationId可查找到相應(yīng)的發(fā)送遠(yuǎn)程命令的命令執(zhí)行狀態(tài)。