gpt4 book ai didi

amazon-web-services - CodePipeline 无法找到 SAM 模板 yaml 文件

转载 作者:行者123 更新时间:2023-12-02 23:55:20 26 4
gpt4 key购买 nike

我正在尝试使用部署到 Lambda 的 Cloudformation SAM 堆栈来设置 AWS Codepipeline,并通过 Pipeline 控制台执行此操作。管道传递来自 Codecommit 流程的克隆以及使用 Codebuild 的构建流程,但在使用 Cloudformation 进行部署时失败。

我收到以下错误消息:

操作执行失败
无效模板路径:MyAppBuild::samTemplate.yml

我一直非常密切地关注文档( http://docs.aws.amazon.com/lambda/latest/dg/automating-deployment.html ),并且在 codepipeline 设置表单(模板文件)的第 16 字段中,我放置了 samTemplate.yml。

我的存储库的根目录中也有 samTemplate.yml(这也是项目的根目录)。

我已将 Codebuild 输出工件名称与 Cloudformation 输入工件名称进行匹配,并且它们完全匹配。

我在这里遗漏了什么吗?如何让 Cloudformation 部署过程识别 sam 模板?

编辑 1 我已改用 Codestar,而不是直接使用 CodePipeline。我的 buildspec.yml 中没有什么特别的,但如果有人感兴趣,它就在下面。

version: 0.2

phases:
install:
commands:
- echo "install"
pre_build:
commands:
- echo "pre_build"
build:
commands:
- aws cloudformation package --template template.yml --s3-bucket $S3_BUCKET --output-template template-export.json
artifacts:
type: zip
files:
- template-export.json

对于 CodeBuild 新手来说,需要记住一件事,由此创建的 zip 文件是构建操作的根级别目录,并且是传输到最终部署的 zip 文件(在我的例子中, lambda )。

最佳答案

您需要在 buildspec.yml 中添加 aws cloudformation package 命令。

 aws cloudformation package --debug --template-file <YourSamTemplate.yml> --s3-bucket <YourbucketName> --output-template-file <YourOutputSamTemplate.yml>

其中 YourSamTemplate.yml 是项目根目录中 samTemplate.yml 的名称。YourOutputSamTemplate.yml 是云形成包命令完成后您想要为输出文件指定的新名称。

然后在下一阶段,您需要将输入工件定义为 aws codebuild 阶段的输出,然后使用此输入工件来映射您的模板。

build-output::YourOutputSamTemplate.yml

关于amazon-web-services - CodePipeline 无法找到 SAM 模板 yaml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43816357/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com