2017-05-26 24 views
0

所以我有一個類和一些常量定義了10個或更多的lambda函數將需要。目前,我已將公共代碼打包到每個lambda函數中。不幸的是,如果我更改通用代碼,我必須重新包裝所有10個lambda函數並上傳更改。我曾考慮過Lambda參考常見Python代碼

思路:

  • LAMBDA返回一類DEFS和常量 - 不可行,拉姆達返回JSON
  • 嘗試神奇加載從S3的通用代碼 - (不知道怎麼做不 真的很喜歡,有多個步驟來更新拉姆達 功能)
  • 包裝通用代碼到每個lambda函數 - (當前設計)

什麼是引用常見Python代碼lambda的最佳方法?

+0

我目前找到的唯一合理的方式是選項3.您可以使用選項1和ast庫,但如果您想要這樣做,您可能會遇到一次地獄。 使用Serverless.com框架,它有助於選擇3的許多痛苦。 –

回答

0

我做的第一件事就是在我的lambda + API網關的python中使用自動部署腳本(S3等內部使用)。您可以在不更改API網關端點的情況下部署您的lambda,並且可以這樣做,只需一次點擊即可更新所有的lambda表達式,而無需修改與AWS框外部的交互。 在裏面,你可以用S3或dynamoDB或其他任何東西自動管理界限。這是一開始的投資,但它絕對是值得的,對於許多lambda來說更是如此。你的解決方案可能是一個短期的好策略,但你需要確定你的舊lambda會與你的新聞常量一起工作,所以無論你是否受限於你的提供者的演變,將不得不管理你的提供者的許多版本。 Lambdas意味着易於部署和更換。