我正在尝试设置CodePipeline来管理非常简单的Lambda函数的部署。
我完全陷于部署步骤的问题,无法找出可能出什么问题。
[当管道尝试运行CodeDeploy操作时,它失败并显示错误...
BundleType must be either YAML or JSON
这是我的应用规格...
version: 0.0
Resources:
- sp-scheduled-tasks-LF4NXEA-1FRBHE8EHF72S:
Type: AWS::Lambda::Function
Properties:
Name: "sp-scheduled-tasks-LF4NXEA-1FRBHE8EHF72S"
我的管道没有构建步骤,因为它只是一个简单的js文件,没有依赖关系,因此不需要构建。
[我尝试添加要部署到S3的操作,并且我可以确认发送到s3的zip文件包含appspec.yml和index.js,并且它们都在根目录中。
我见过的大多数示例都使用一个buildspec,但是我不确定为什么需要这个,或者如果有一个我什至会做什么。
设置没有问题,这是服务的缺陷,您无法在CodePipeline操作中使用CodeDeploy部署Lambda。
原因是因为CodeDeploy需要用于部署的JSON或YAML文件,但是当前CodePipeline支持ZIP作为捆绑类型,因此引发错误。
要解决此问题,客户可以通过CloudFormation部署操作(准确地说是SAM)在CodePipeline中部署Lambda。请参阅有关此推荐方法的本教程: