Serverless 應用引擎支持通過事件總線(EventBridge)觸發(fā)SAE自動持續(xù)部署(CD)。本文介紹如何通過EventBridge配置監(jiān)聽特定事件并聯(lián)動ACR,在檢測到新的鏡像版本構建完成后,實現(xiàn)從鏡像更新到應用自動部署的無縫銜接,以確保系統(tǒng)的實時性和高效性。
前提條件
容器鏡像服務 ACR(Container Registry)
已創(chuàng)建企業(yè)版實例。具體操作,請參見創(chuàng)建企業(yè)版實例。
已準備構建鏡像的Dockerfile文件,(本文已放置在項目根目錄)。具體操作,請參見使用企業(yè)版實例構建鏡像。
綁定源代碼托管平臺。本文以在Gitee代碼平臺更新并推送代碼為例,具體操作,請參見綁定企業(yè)版實例與Gitee代碼平臺。
已創(chuàng)建命名空間。具體操作,請參見創(chuàng)建命名空間。
Serverless 應用引擎 SAE(Serverless App Engine)
已開通Serverless 應用引擎 SAE(Serverless App Engine)。具體操作,請參見開通Serverless 應用引擎 SAE(Serverless App Engine)。
事件總線(EventBridge)
已開通事件總線(EventBridge)。具體操作,請參見開通事件總線EventBridge并授權。
使用限制
僅適用于微服務應用。
背景信息
通過事件總線(EventBridge)觸發(fā)的方式,監(jiān)聽ACR容器鏡像服務構建鏡像完成后,然后由事件總線觸發(fā)SAE的自動CD,并運行版本鏡像應用,實現(xiàn)高效的應用測試,并完成項目開發(fā)工作。
步驟一:使用ACR企業(yè)版實例構建鏡像
登錄容器鏡像服務控制臺。
在左側導航欄,單擊實例列表。在頂部菜單欄,選擇目標地域。
在實例列表頁面,單擊目標企業(yè)版實例。
在企業(yè)版實例管理頁面選擇
,單擊創(chuàng)建鏡像倉庫。在倉庫信息配置向導中設置命名空間、倉庫名稱、倉庫類型、鏡像版本、摘要、描述信息,然后單擊下一步。
在代碼源配置向導中,代碼源選擇Gitee,在下拉列表中選擇目標倉庫和倉庫名稱,構建設置選中代碼變更時自動構建鏡像,然后單擊創(chuàng)建鏡像倉庫。
在鏡像倉庫頁面單擊目標倉庫右側的操作列中的管理。
單擊左側導航欄中的構建,在構建規(guī)則設置區(qū)域單擊添加規(guī)則,在構建信息配置向導中設置參數(shù),然后單擊下一步。
參數(shù)
說明
類型
設置源代碼倉庫的類型,可以是Branch或Tag。
Branch/Tag
選擇或填寫B(tài)ranch/Tag,支持正則規(guī)則。當正則規(guī)則為release-(?<imageTag>\w*)時,將識別release-v1源代碼變更并自動構建版本為v1的鏡像(不支持立即構建),更多信息,請參見正則表達式命名捕獲組。
說明設置正則規(guī)則后僅支持系統(tǒng)自動構建,不支持手動立即構建。
構建上下文目錄
設置Dockerfile文件所在的目錄。指的是相對目錄,以Branch/Tag的根目錄為父目錄,例如您的Branch為master,您的Dockerfile文件放在master下,則您的Dockerfile目錄為/。
Dockerfile文件名
設置Dockerfile文件名,默認為Dockerfile。
在鏡像版本配置向導中設置參數(shù),單擊保存,然后單擊下一步。
說明單擊新增配置,可以增加鏡像版本,最多可以設置3個鏡像版本。
參數(shù)
說明
鏡像版本
設置鏡像Tag,例如latest。支持命名捕獲,例如使用Branch/Tag中捕獲的內容。
時間
推送源代碼的東八區(qū)(UTC+8)時間,有兩種格式可供選擇,例如20201015和202010151613。
說明該參數(shù)為可選項,當選中該參數(shù)后系統(tǒng)僅支持自動構建,不支持手動立即構建。
Commit ID
最近一次推送代碼的Commit ID,默認取前6位,可以滑動下方的滑塊設置位數(shù)。
說明該參數(shù)為可選項,當選中該參數(shù)后系統(tǒng)僅支持自動構建,不支持手動立即構建。
在構建配置配置向導中設置構建參數(shù),然后單擊確定。
參數(shù)
說明
構建架構
選擇構建架構,支持并行構建,最終形成一個鏡像版本對應多個架構鏡像。
構建參數(shù)
鏡像構建運行時參數(shù),構建參數(shù)由區(qū)分大小寫的鍵值對組成,您最多可以設置20個構建參數(shù)。您可以設置構建參數(shù),該構建參數(shù)會修改Dockerfile文件中的環(huán)境變量,使同一個Dockerfile文件呈現(xiàn)多種狀態(tài)。
觸發(fā)構建規(guī)則。
您可以通過以下兩種方式觸發(fā)構建規(guī)則:
在構建頁面的構建規(guī)則設置區(qū)域,單擊目標構建規(guī)則操作列下的立即構建,觸發(fā)構建規(guī)則。
向代碼倉庫的master分支提交代碼,觸發(fā)構建規(guī)則。
說明在構建頁面構建日志區(qū)域單擊目標構建任務操作列的取消,可以取消構建任務。
在構建頁面構建日志區(qū)域單擊目標構建任務操作列的日志,可以查看構建過程日志。
在左側導航欄單擊鏡像版本,您可以看到構建的鏡像,表示構建鏡像成功。
步驟二:使用鏡像部署SAE應用
登錄SAE控制臺。
在左側導航欄,選擇 ,在頂部菜單欄選擇地域,然后單擊創(chuàng)建應用。
在應用基本信息配置向導中,配置相關信息,然后單擊下一步:應用部署配置。
配置項
說明
應用名稱
輸入自定義的應用名稱。
專有網(wǎng)絡配置
選擇自定義配置的專有網(wǎng)絡的配置方式。選中后,為創(chuàng)建的應用選擇所需的命名空間、VPC、vSwitch及安全組。
說明VPC與ACR企業(yè)版實例保持一致。
命名空間
從下拉列表中選擇已創(chuàng)建的命名空間。命名空間和VPC是一一映射關系。關于修改VPC的更多信息,請參見創(chuàng)建和管理專有網(wǎng)絡。
vSwitch
單擊請選擇vSwitch,在選擇vSwitch對話框配置。
vSwitch數(shù)量至少需要配置1個,建議不超過3個,且每個vSwitch至少匹配1個應用實例。
安全組
從下拉列表選擇安全組。如果您的VPC內沒有創(chuàng)建安全組,請單擊創(chuàng)建安全組,根據(jù)提示創(chuàng)建安全組。更多信息,請參見創(chuàng)建安全組。
應用實例數(shù)
選擇需要創(chuàng)建的實例個數(shù)。
vCPU
選擇需要創(chuàng)建的實例vCPU規(guī)格。
內存
選擇需要創(chuàng)建的實例內存規(guī)格。
應用描述
填寫應用的基本情況。
在應用部署配置向導中,配置應用部署信息,然后單擊下一步:確認規(guī)格。更多信息,請參見在SAE控制臺使用鏡像部署多語言應用。
配置項
說明
技術棧語言
選擇其它語言,包括C++、Go、.NET、Node.js等語言。
應用部署方式
僅支持鏡像。
配置鏡像
指定部署應用的鏡像文件。單擊我的阿里云鏡像頁簽,單擊鏡像服務企業(yè)版,在下拉列表中選擇目標企業(yè)版實例。
說明選擇容器鏡像服務企業(yè)版部署應用,您需要為目標企業(yè)實例配置專有網(wǎng)絡的訪問控制。
在確認規(guī)格配置向導,查看您所創(chuàng)建應用的詳細信息以及費用配置情況,然后單擊確認創(chuàng)建。
頁面會跳轉至創(chuàng)建完成配置向導,您可以單擊應用詳情頁進入基本信息頁面。
步驟三:創(chuàng)建EventBridge自定義事件總線
在左側導航欄,單擊事件總線,在頂部菜單欄,選擇地域。
在事件總線頁面的自定義事件總線區(qū)域,單擊快速創(chuàng)建。
在創(chuàng)建自定義事件總線面板,配置相關信息。
在總線配置向導中,輸入自定義事件總線名稱和描述,然后單擊下一步。
在事件源配置向導中,輸入事件源名稱和描述,事件提供方選擇HTTP/HTTPS 觸發(fā),配置以下參數(shù),然后單擊確認。
參數(shù)名稱
參數(shù)說明
請求類型
選擇HTTP&HTTPS。
請求方法
請求方法選擇GET、POST。
安全配置
安全配置的類型選擇無需配置。
在規(guī)則配置向導中,輸入規(guī)則名稱和描述,在模式內容代碼框輸入事件模式,然后單擊下一步。
在目標配置向導中,服務類型選擇云產品接口觸發(fā)Serverless 應用引擎,接口版本選擇2019-05-06,選擇接口類型,填寫接口參數(shù)和角色配置信息,然后單擊創(chuàng)建。
接口類型選擇DeployApplication,填寫以下接口參數(shù)信息。更多接口參數(shù)信息,請參見DeployApplication。
名稱
類型
位置
是否必選
示例值
描述
AppId
String
Query
是
7171a6ca-d1cd-4928-8642-7d5cfe69****
需要部署的應用ID。
ImageUrl
String
Query
否
registry.cn-hangzhou.aliyuncs.com/sae_test/ali_sae_test:0.0.1
鏡像地址。當Package Type為Image時必填。
AcrInstanceId
String
FormData
否
cri-xxxxxx
ACR企業(yè)版實例ID。當ImageUrl為容
器鏡像服務企業(yè)版時必填。
步驟四:創(chuàng)建ACR事件規(guī)則
登錄容器鏡像服務控制臺。
在左側導航欄,單擊實例列表。在頂部菜單欄,選擇地域。
在實例列表頁面單擊目標企業(yè)版實例。
在實例詳情頁面左側導航欄選擇
。在事件規(guī)則頁簽下單擊創(chuàng)建規(guī)則。
在事件范圍配置向導中設置參數(shù),然后單擊下一步。
參數(shù)
說明
規(guī)則名稱
設置事件規(guī)則名稱。
事件類型
設置事件通知觸發(fā)的事件類型,在下拉列表中選擇鏡像構建完成。
勾選鏡像構建成功時,觸發(fā)事件通知。
生效范圍
設置事件生效的范圍,選擇倉庫,選擇命名空間和鏡像倉庫,設置鏡像版本過濾的正則規(guī)則,在該鏡像倉庫下符合正則規(guī)則的鏡像版本將觸發(fā)事件通知。
在事件通知配置向導中,通知方式選擇HTTPS,輸入已創(chuàng)建的事件總線事件源的地址(公網(wǎng)請求URL),然后單擊保存。
步驟五:更新源碼,結果驗證
當Gitee上的代碼被修改后,ACR會自動構建鏡像,并通過事件總線(EventBridge)觸發(fā)SAE應用自動部署的無縫銜接。
您可以在事件總線控制臺查看事件軌跡,查看事件在事件總線EventBridge中的處理軌跡。在事件總線(EventBridge)控制臺發(fā)布事件后,如果事件目標未接收到事件或接收到的事件與實際場景不符,您可以使用事件追蹤功能,幫助您定位事件收發(fā)過程中出現(xiàn)問題的環(huán)節(jié)和原因。
您可以在SAE控制臺查看應用的變更記錄,查看是否產生應用重新部署的變更記錄。