1. 程式人生 > >你還在生產環境改程式碼麼?函式計算版本管理(二)事件驅動模式中的使用

你還在生產環境改程式碼麼?函式計算版本管理(二)事件驅動模式中的使用

在瞭解了函式計算版本管理的基本概念後,我們來看看如何在事件驅動的模式中使用版本和別名。

阿里雲函式計算以事件驅動的方式連線其他服務。事件源是事件的生產者,函式是事件的處理者,而觸發器則提供了一種集中的和統一的方式來管理不同的事件源。當事件源觸發事件時,如果滿足觸發器定義的規則,事件源會自動呼叫關聯的函式處理事件。

在沒有使用版本管理的情況下,任何一次對函式的更改都像是在生產伺服器上進行開發一樣,是非常危險的。一個小小的bug就足以破壞所有依賴它的服務。

without versioning

如果我們釋出一個穩定的版本,並讓觸發器指向這個穩定版本,那接下來我們在“LATEST”版本上所做的任何開發都不會影響這個版本。當下一個版本準備就緒時,再將觸發器移動到新版本就好了。
with version

但是,對於一些單向整合的觸發器,我們必須要切換到事件源的控制檯區更改。此外函式計算支援的觸發器種類繁多,每次釋出新版本都要去更新所有處理線上事件的觸發器也可能會很麻煩。這就是別名進入的地方。我們可以建立一個別名,讓觸發器指向它,並讓它指向一個穩定的版本。當我們釋出另一個版本時,需要做的就只是更改別名指向的版本,非常方便!

with alias

 


觸發器中如何指定版本或別名?

首先宣告觸發器本身並沒有版本,只是指向服務某個版本下的函式。在觸發器的基本資訊中,“qualifier”欄位用來存放觸發器指向的服務版本資訊。“qualifier”為可選欄位,取值既可以是版本,也可以是別名。如不指定,則觸發器指向“LATEST”版本中的函式。以在控制檯上建立HTTP觸發器為例,在“觸發版本/別名

”中填入您指定的版本號或者別名即可。和觸發器的其他基本資訊一樣,“觸發版本/別名”是可以更改的。這也就意味著您通過更新觸發器指向的版本,就可以將線上流量,或是測試請求導向您指定的版本或別名。

http trigger

目前支援版本管理的觸發器有HTTP觸發器、定時觸發器、LogStore觸發器、API網管觸發器以及CDN事件觸發器,其他觸發器對版本管理的支援也在緊鑼密鼓地開發中,會陸續更新上線。


有了指向版本和別名的觸發器,就可以在事件驅動的模式下靈活使用版本管理了。讓我們再回顧一下:

1.     釋出穩定的版本,並建立一個別名指向這個版本。

2.     建立需要的觸發器,並讓觸發器指向別名。

3.     待LATEST上開發穩定後,釋出新版本,並更新別名指向這個新版本。

 

更多版本管理的高階用法和最佳實踐,會陸續釋出文章來介紹,敬請關注!


版本管理功能文件: