【发布时间】:2018-07-07 08:57:30
【问题描述】:
当 CodeDeploy 和 AWS Lambda 在 AWS CodePipeline 中工作时,我遇到了问题。这是我的设置:
- 来源 GitHub
- AWS CodeBuild
- AWS CodeDeploy
问题
第 1 步和第 2 步工作没有问题,但在 CodeDeploy 方面我收到以下错误:
动作执行失败 BundleType 必须是 YAML 或 JSON
如果我解压缩 CodeBuild 生成的工件,所有文件都已就位。
如果我尝试从 CodeDeploy 手动部署到 AWS Lambda,则会收到不同的消息...
部署失败部署失败,因为目标 Lambda 函数 FUNCTION_NAME 不存在或指定的函数 找不到版本或别名
这对于哪个错误消息有效,或者它们是否相同但具有不同的错误消息非常混乱。
设置
函数的ARN是:
arn:aws:lambda:us-east-1:239748505547:function:email_submition
别名的 ARN 是:
arn:aws:lambda:us-east-1:239748505547:function:email_submition:default
而我的appspec.yml文件有以下内容
version: 0.0
Resources:
- email_submition:
Type: AWS::Lambda::Function
Properties:
Name: "email_submition"
Alias: "default"
CurrentVersion: "1"
TargetVersion: "2"
而项目的文件夹结构是:
.gitignore
appspec.yml
buildspec.yml
index.js
README.md
问题
我在这个配置中缺少什么?
【问题讨论】:
-
这绝对是您创建的别名吗?默认通常是 :latest
-
这是我的
arn:aws:lambda:us-east-1:239748505547:function:email_submition:default -
这很奇怪,但对于 Lambda 或 ECS 部署,该文件应该是“appspec.yaml”。对于 EC2/On prem,它的“appspec.yml”
标签: amazon-web-services amazon-s3 aws-lambda aws-code-deploy aws-codepipeline