簡體   English   中英

aws 代碼管道使用 s3 對象更新 lambda 函數源

[英]aws codepipline update lambda function source using s3 object

我正在使用 terraform 在 AWS 上創建所有基礎設施(CodePipeline、lambda、bucket)

目前,我已經創建了一個管道來構建源 zip 文件並將其放在 s3 存儲桶上,但 lambda 仍然繼續使用舊源。 因此,我在 AWS 控制台中手動更新了 URL 並且它工作正常。 現在我想自動化流程,但可用的解決方案是:

  • AWS SAM + CFT
  • 使用 AWS CLI 更新源的 Codebuild Stage
  • 創建一個更新源的 lambda
  • 代碼部署 + AWS SAM + CFT

我根本不願意使用 CFT,因為我們所有的代碼都是 terraform 並且 CFT 要求我創建新的 lambdas 而不是使用舊的。

有沒有其他更簡單的方法可以通過 Codepipeline 更新 lambda 源

通過 CodePipeline 部署 Lambda 的首選方法是使用 CloudFormation 部署操作 [1]。 由於您不打算使用 CloudFormation,因此下一個選項可能是從作為管道一部分的 CodeBuild 作業中運行您的 terraform plan/apply 命令。 您將需要為資源創建提供 CodeBuild 角色所需的權限(或導出環境變量中的憑據以供 TF 通過此 [2] 方法使用)並在 buildspec 的安裝階段安裝 TF 二進制文件。

參考:

[1] 使用 AWS CodePipeline 為 Lambda 應用程序構建持續交付管道 - https://docs.aws.amazon.com/lambda/latest/dg/build-pipeline.html

[2] 如何在 buildspec.yaml 中檢索 Secret Manager 數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM