Amazon-Web-Services

AWS Lambda 自動使用最新層

  • April 21, 2022

我們有一個無伺服器堆棧,它依賴多個 AWS Lambda 來執行任務。為了幫助使程式碼可重用,我們在 Lambda 之間共享了多個 Lambda 層。

我們的問題是,當我們對圖層進行更改時,它會創建該圖層的新版本。所有使用該層的 Lambda 都不會自動使用最新版本。然而,它們足夠聰明,可以檢測到有新版本並且不再執行(拋出需要使用最新層的異常)

對於 50 多個 Lambda,AWS 門戶的層更新流程非常糟糕。一個接一個,手動打開每個 Lambda,刪除層,添加新層等。

有沒有辦法使用 CLI 或其他一些自動化方法更新所有 Lambda 以使用所有必要層的最新版本?

每次您通過 Lambda 函式更新層循環並更新其配置時。您可以使用AWS CLI來執行此操作:

aws lambda update-function-configuration --layers ...

不過,更好的方法是為您的層和 lambda 部署 CI/CD 並配置依賴項。每當更新層管道時,它應該觸發重新部署依賴於該層的所有 Lambda。所有現代 CI/CD 工具都可以做到這一點——GitLab、Jenkins、GoCD 甚至 AWS CodePipeline。

這樣,您所要做的就是將新層程式碼推送到 git 儲存庫,而您的 CI/CD 工具將負責其餘的工作。

希望有幫助:)

引用自:https://serverfault.com/questions/1020606