AWS:Lambda的CodeDeploy无法读取appspec

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

我正在尝试设置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,但是我不确定为什么需要这个,或者如果有一个我什至会做什么。

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

设置没有问题,这是服务的缺陷,您无法在CodePipeline操作中使用CodeDeploy部署Lambda。

原因是因为CodeDeploy需要用于部署的JSON或YAML文件,但是当前CodePipeline支持ZIP作为捆绑类型,因此引发错误。

要解决此问题,客户可以通过CloudFormation部署操作(准确地说是SAM)在CodePipeline中部署Lambda。请参阅有关此推荐方法的本教程:

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