【问题标题】:CodePipeline unable to locate SAM template yaml fileCodePipeline 无法找到 SAM 模板 yaml 文件
【发布时间】:2017-10-04 14:37:09
【问题描述】:

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

我收到以下错误消息:

Action execution failed Invalid TemplatePath: MyAppBuild::samTemplate.yml

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

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

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

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

EDIT 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 文件(在我的情况下,拉姆达)。

【问题讨论】:

  • 可以包含 buildspec.yml 吗?

标签: amazon-web-services amazon-cloudformation aws-codepipeline


【解决方案1】:

您需要在 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 代码构建阶段的输出,然后使用此输入工件映射您的模板。

build-output::YourOutputSamTemplate.yml

【讨论】:

    【解决方案2】:

    我相信构建阶段的输出是需要传递给 CloudFormation 操作的。

    在教程中,构建输出称为NewSamTemplate.yaml

    所以尝试将您的 TemplatePath 更新为 MyAppBuild::NewSamTemplate.yml

    【讨论】:

      【解决方案3】:

      就我而言,错误出在文件名中。而不是template.yml,实际文件是template.yaml

      【讨论】:

        猜你喜欢
        • 2019-06-24
        • 2019-11-23
        • 2019-04-27
        • 2021-06-03
        • 1970-01-01
        • 2022-01-16
        • 1970-01-01
        • 2020-05-20
        • 1970-01-01
        相关资源
        最近更新 更多