使用s3对象的aws代码行更新lambda函数源

问题描述 投票:0回答:1

我正在使用terraform在AWS上创建所有基础设施(CodePipeline,lambda,存储桶)>

当前,我已经创建了一个构建源zip文件并将其放在s3存储桶中的管道,但是lambda仍然继续使用旧的源文件。因此,我在AWS控制台中手动更新了URL,它可以工作。现在我想自动化流程,但是可用的解决方案是:

  • AWS SAM + CFT
  • Codebuild阶段使用AWS CLI更新源代码
  • 创建一个更新源的lambda
  • 代码部署+ AWS SAM + CFT
  • 我根本不愿意使用CFT,因为我们所有的代码都是terraform,CFT要求我创建新的lambda,而不是使用旧的lambda。

还有其他更简单的方法可以通过Codepipeline更新lambda源吗?>

目前,我正在使用terraform在AWS上创建所有基础设施(CodePipeline,lambda,bucket),我创建了一个构建源zip文件并将其放在s3存储桶中的管道,但lambda仍然...

] >

通过CodePipeline部署Lambda的首选方法是使用CloudFormation Deploy操作[1]。由于您不想使用CloudFormation,因此下一个选择是从管道的一部分CodeBuild作业中运行Terraform Plan / apply命令。您将需要提供CodeBuild角色所需的资源创建权限(或导出环境变量中的凭据以供TF通过此[2]方法使用),并在buildspec的安装阶段中安装TF二进制文件。

Ref:

[[1]使用AWS CodePipeline为Lambda应用程序构建持续交付管道-https://docs.aws.amazon.com/lambda/latest/dg/build-pipeline.html

[2] How to retrieve Secret Manager data in buildspec.yaml

amazon-web-services aws-lambda aws-code-deploy aws-codepipeline aws-codebuild
1个回答
0
投票

通过CodePipeline部署Lambda的首选方法是使用CloudFormation Deploy操作[1]。由于您不想使用CloudFormation,因此下一个选择是从管道的一部分CodeBuild作业中运行Terraform Plan / apply命令。您将需要提供CodeBuild角色所需的资源创建权限(或导出环境变量中的凭据以供TF通过此[2]方法使用),并在buildspec的安装阶段中安装TF二进制文件。

© www.soinside.com 2019 - 2024. All rights reserved.