AWS:帮助在代码管道中设置CodeDeploy

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

看来使用CodeBuild无法使Codedeploy在CodePipeline项目中工作。

[首先,我建立了一个包含三个阶段的管道:源,构建和部署,前两个阶段运行良好,但是第三个阶段(CodeDeploy)抛出此错误:enter image description here

CodeBuild将输出工件推送到.zip文件中的s3,CodeDeploy不支持。

为此,我试图在CodeBuild和CodeDeploy之间设置Lambda函数,如下所示:(源-> CodeBuild->调用Lambda-> CodeDeploy),Lambda函数将appspec.yml文件上传到s3并调用putJobSuccessResult,但是我仍然遇到相同的错误。

aws-lambda aws-codepipeline aws-codebuild aws-code-deploy-appspec
1个回答
0
投票

BundleType必须为YAML或JSON

目前尚不支持使用CodePipeline使用CodeDeploy作为部署提供程序的Lambda进行部署的已知限制。

这是因为CodePipeline将始终压缩包/工件,而CodeDeploy希望将YAML / JSON文件作为Lambda Function部署的源(appspec.yaml文件)。

为了解决此限制,您有两个选择:

  1. 在CodeBuild阶段内运行AWS CLI命令以更新/部署lambda函数

OR

  1. 使用CodeBuild打包您的lambda函数代码,并将工件推送到CloudFormation阶段,该阶段将更新或创建您的Lambda函数资源。您应该在[1]处找到参考文档,对于获取有关打包SAM应用程序的必需信息很有用。

Ref:

[[1] SAM包装-https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-deploying.html#serverless-sam-cli-using-package-and-deploy

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