Amazon web services aws codepipline使用s3对象更新lambda函数源
我正在使用terraform在AWS上创建所有的infra(代码管道、lambda、bucket) 目前,我已经创建了一个管道来构建源zip文件并将其放在s3 bucket中,但lambda仍然使用旧的源代码。因此,我在AWS控制台中手动更新URL,它可以正常工作。 现在我想自动化流程,但可用的解决方案有:Amazon web services aws codepipline使用s3对象更新lambda函数源,amazon-web-services,aws-lambda,aws-code-deploy,aws-codepipeline,aws-codebuild,Amazon Web Services,Aws Lambda,Aws Code Deploy,Aws Codepipeline,Aws Codebuild,我正在使用terraform在AWS上创建所有的infra(代码管道、lambda、bucket) 目前,我已经创建了一个管道来构建源zip文件并将其放在s3 bucket中,但lambda仍然使用旧的源代码。因此,我在AWS控制台中手动更新URL,它可以正常工作。 现在我想自动化流程,但可用的解决方案有: AWS SAM+CFT 使用AWS CLI更新源代码的代码构建阶段 创建更新源的lambda 代码部署+AWS SAM+CFT 我根本不愿意使用CFT,因为我们所有的代码都是terraf
- AWS SAM+CFT
- 使用AWS CLI更新源代码的代码构建阶段
- 创建更新源的lambda
- 代码部署+AWS SAM+CFT
是否有其他更简单的方法通过Codepipeline更新lambda源通过Codepipeline部署lambda的首选方法是使用CloudFormation部署操作[1]。由于您不打算使用CloudFormation,下一个选项可能是从作为管道一部分的CodeBuild作业中运行terraform plan/apply命令。您需要为创建资源提供CodeBuild角色所需的权限(或导出环境变量中的凭据,以便TF通过此[2]方法使用),并在buildspec的安装阶段安装TF二进制文件 参考: [1] 使用AWS CodePipeline为Lambda应用构建连续输送管道-
[2] 我不使用CloudFormation的原因是它试图创建新的lambda,而不是更新TerraformIf创建的现有lambda。我必须使用CodeBuild,然后使用aws cli更新lambda对我来说更有意义