amazon-web-services – AWS CodeDeploy无法部署lambda函数

我有一个简单的AWS CodePipeline,只有很少的步骤.

> AWS CodeCommit(提供输出“SourceCode”)
> AWS CodeBuild(输入“SourceCode”,npm install,npm run-scripts build,输出“FinalCode”)
> AWS CodeDeploy(输入“FinalCode”,部署到Lambda函数)

实际上,我尝试了几个小时才能使这个F *** CodeDeploy工作.
这是不可能的.我不敢相信-.-

因此,我们可以查看AWS CodeDeploy步骤.错误必定存在.
我用CodeBuild尝试了不同的场景.
使用artifacts.zip和appspecs.yml以及其他输出.

CodeDeploy说:

Action execution failed
BundleType must be either YAML or JSON

当它由CodePipeline触发时.

我从CodePipeline-S3-Bucket下载文件,这是CodeDeploy的输入.
它包含所有需要的文件.

《amazon-web-services – AWS CodeDeploy无法部署lambda函数》

我不知道如何告诉管道采取这个appspec.yml.

有趣的是,如果我手动部署它,它的工作.
所以我认为CodeDeploy无法找到appspec.yml.

《amazon-web-services – AWS CodeDeploy无法部署lambda函数》

在这里你可以看到.

《amazon-web-services – AWS CodeDeploy无法部署lambda函数》

但如果我考虑一下,这没有任何意义.
因为在这个应用程序规范编辑器中,我无法指定我要部署的ZIP存档的路径.

有谁知道如何最后完成这一步?

我不敢相信它很难:-D
我能够非常轻松地设置CodeCommit.
使用buildspec.yml,CodeBuild也非常简单.
现在我无法部署,因为忽略了appspec.yml或类似的东西……

最佳答案 嗨@Patrick听起来好像这里发生了一些事情.

>正如@Putnik所说,在图片中应该选择YAML,但我不认为图片是问题部署.
> Lambda部署只需要’appspec文件.因此,通过控制台执行此操作不需要客户添加zip,除非他们的appspec位于另一个存储库中(S3).发布的图片看起来像您的手动部署测试使用了在appspec文件编辑器中输入的原始字符串appspec. (如果要使用.zip,请将“修订位置”更改为“S3”选项.)
>它没有将.yml识别为.yaml.我会调查一下.目前,解决方法是将文件的扩展名更改为.yaml.

点赞