AWS Lambda function 版本化和格式化

函數版本化和別名化

當你開始使用Lambda構建複雜系統時,你將想要以一個可控的基礎來演進它們。我們已經添加了一個新的版本化特性來簡化開發和測試這一重要方面。

每次你上傳一個特定函數代碼的最新副本時,Lambda將會自動創建一個新的版本,並給它分配一個數字(1,2,3等等)。該函數的Amazon Resource Name(ARN,亞馬遜資源名稱)現在在末尾接受一個可選的版本限定符(一個:,然後是一個版本號)。爲了便於使用和後向兼容,沒有限定符的ARN總是指向函數的最新版本。像“arn:aws:lambda:us-west-2:123456789012:function:PyFunc1:2”這樣帶有限定符的ARN是指一個特定的版本(在本例中指2)。

下面是你開始考慮這一新特性時必須記住的幾件事:

函數的每一個版本有它自己的描述和配置(語言/運行時間,內存大小,超時時間,IAM角色等等)。

一個特定函數的每一個版本產生一組獨特的CloudWatch測量指標。
該函數的CloudWatch日誌將會包含函數版本,作爲流名稱的一部分。
Lambda將會存儲每一個函數的多個版本。每一個Lambda賬戶可以存儲多達大15億字節的代碼,你可以按照需要刪除較老的版本。
你也可以創建命名的別名,將它們分配給函數代碼的具體版本。例如,你可以最初分配“prod”給一個函數的版本3,分配“test”給版本5,分配“dev”給版本7。然後你使用該別名作爲ARN的一部分,ARN是你用來調用函數的,像這樣:

生產— “arn:aws:lambda:us-west-2:123456789012:function:PyFunc1:prod”
測試—“arn:aws:lambda:us-west-2:123456789012:function:PyFunc1:test”
開發— “arn:aws:lambda:us-west-2:123456789012:function:PyFunc1:dev”
在你想要使用一個既存的非版本化或非別名化的ARN時,你可以使用攜帶版本號或別名的ARN(我們喜歡把這樣的ARN成爲限定的ARN)。事實上,作爲一項最優實踐,我們推薦使用它們。

在問題發生時,該特性使階段之間的代碼推進或是向較早版本的回退變得簡單。例如,你可以將你的prod別名指向代碼的版本3,然後重新將其映射,使其指向版本5(有效地將其從測試階段推進到生產階段),不需對客戶端應用或觸發函數調用的事件源作任何修改。

摘抄:https://www.csdn.net/article/2015-10-14/2825912

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章