问题标签 [aws-codepipeline]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1300 浏览

amazon-web-services - 使用 CodePipeline 从多个来源进行部署

我正在尝试在 AWS 上建立一个项目。我正在使用 CodePipeline 将我的代码部署到 Elastic Beanstalk,源代码来自 git 存储库。这工作正常。

该项目有一些我不想包含在 git 存储库中的配置文件(密码和设置等)。由于它们不在 git 存储库中,因此 CodePipeline 不会部署它们。

如何在 CodePipeline 中包含配置文件而不将它们包含在 git 存储库中?

想法:我尝试在 CodePipeline 中添加一个额外的 S3 源,其中包含配置文件。然后我不得不添加一个额外的部署操作来部署新的 S3 源。但是随后两个部署过程相互冲突,并且只有一个成功。如果我重试失败的那个,那么成功的那个部署的任何东西都会被再次删除。似乎不可能将两个输入工件(源)添加到单个部署操作。

0 投票
2 回答
5703 浏览

amazon-web-services - 未知的 Cloudformation 错误/未能执行变更集

我正在设置要通过 Codepipeline -> Cloudformation 部署的 Java AWS lambda 函数,并且在使用 Cloudformation 时遇到了一些困难。我以前使用过 Terraform,所以我了解一般概念......

澄清一下,我的代码存放在 Codecommit 存储库中,一切都由 Codestar 设置,因此它创建了一个具有单阶段、两步部署(生成变更集,执行变更集)的 Codepipeline。

目前,我只是标记 Codestar 在存储库中创建的示例 template.yml 文件,因此是 HelloWorld 引用。

除了 template.yml 文件之外,我还有一个用于 Codebuild 的 buildspec.yml 文件,尽管构建过程已成功完成。

下面是我的 template.yml cloudformation 脚本。Codepipeline 部署阶段中的 ChangeSet 步骤成功完成,但是 ExecuteChangeset 步骤失败,并显示“未提供原因”(超级有用)。单击详细信息链接将我带到 Cloudformation 页面以执行实际上不显示任何错误的步骤。它显示了一些我希望看到的添加/删除步骤,尽管并不是我认为需要发生的所有步骤。如果我单击“执行”,则会失败并出现以下错误:

我在这里做错了什么?我没有很好地掌握 Fn::GetAtt 调用,但我已经尝试了几种不同的方法,但没有任何乐趣。

**除了找出问题所在之外,我还有两个问题:

  1. 请解释我应该在 Fn::GetAtt 函数调用中究竟引用什么?是我在尝试调用的资源顶部提供的资源名称(例如 GetHelloWorld)吗?还是作为该资源的属性提供的显式名称(即 FunctionName)?

  2. 在 Lambda 函数声明中,我尝试在线设置事件触发器,然后需要引用 Lambda 函数。我可以从嵌套在 Lambda 函数资源中的事件声明中引用 Lambda 函数资源吗?

下面是我的 template.yml 文件。

0 投票
3 回答
3791 浏览

amazon-web-services - 使用 AWS CodeBuild 进行语义版本控制

目前我的团队正在使用 Jenkins 来管理我们的 CI/CD 工作流程。由于我们的基础设施完全在 AWS 中,我一直在考虑迁移到 AWS CodePipeline/CodeBuild 来管理它。

在当前状态下,我们正在对我们的工件进行版本控制,<major>.<minor>.<patch>-<jenkins build #>1.1.1-987. 但是,CodeBuild 似乎没有任何内部版本号的概念。由于工件存储在 s3 中,<bucket>/<version>/<artifact>我真的不想失去这种版本控制方法。

CodeBuild 确实提供了一些环境变量,我可以在这里看到:http: //docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref.html#build-env-ref-env-vars

但是从可用的内容来看,尝试使用构建 ID 或其他任何东西似乎很愚蠢。

CodeBuild 是否有任何现成的东西可以支持增量构建#?或者是否有 AWS 推荐的语义版本控制方法?搜索此主题返回的结果非常低

非常感谢任何帮助或建议

0 投票
1 回答
2956 浏览

amazon-web-services - 在 AWS CodePipeline 中访问 AWS CodeBuild 变量

我正在尝试使用 AWS CodeBuild Id 作为我的 docker 映像的标签。此 docker 映像是在 CodeBuild 的构建阶段构建的。我想获得这个 Coudebuild Id,它是我在 AWS Code Pipeline 阶段的 docker 标签。如何在 aws codepipeline 中访问这些 codebuild 环境变量?

代码构建阶段:

在这里,我的 docker 映像现在是我的 Repository Url 和我的 codebuild id 的组合。我想在aws codepipeline的部署阶段使用这个codebuild id,如何获取呢?

0 投票
1 回答
449 浏览

encryption - 在 AWS Codepipeline 中解密 Lambda 函数中的输入参数

我使用 CodeBuild 步骤构建了一个 CodePipeline,该步骤生成一个带有单行标记信息的文件“build.json”作为输出。此文件是 Codepipeline 中下一个 Lambda 步骤的输入。Lambda 函数想要读取标签信息,然后对其进行处理。因此,我使用 s3::getobject 读取了 S3 对象,作为响应,我得到:

当我使用内容并将其发送到 kms 进行解密时,例如:

我只得到:错误 InvalidCiphertextException:null。

我还尝试提供一些其他值作为 Encryptioncontext,但没有运气。

谢谢。

0 投票
1 回答
227 浏览

amazon-web-services - 不使用 Elastic Beanstalk、CodePipeline 和 CodeCommit 重新编译 Smarty 文件

我正在使用 Elastic Beanstalk,使用 CodeCommit 和 CodePipeline 部署我的应用程序。我正在使用 Smarty 进行模板化。为了避免在部署应用程序的新版本时重新编译所有模板,我希望将已编译的模板文件保留在/var/app/current/目录之外,每次部署时它们都将被删除。

但是当我这样做时,Smarty 不会在更新原始模板文件时更新已编译的模板文件。我已经调查找出原因,当我查看 EC2 实例上的原始模板文件时,它们的最后修改日期都是 1979-12-31 05:08:00。

似乎 Elastic Beanstalk 在部署时不保留文件的修改日期。也许原始修改日期在 CodeCommit 或 CodePipeline 中丢失了?

我的猜测是 Smarty 会查看文件的修改日期来确定编译的文件是否是最新的。而且由于编译的模板比原始模板更新,即使它们不是最新的,它们也被认为是最新的。

关于如何解决这个问题的任何想法,除了在每次新部署时删除已编译的模板?有没有办法让 Elastic Beanstalk 保留修改时间?或者有没有办法让 Smarty 了解除了文件的修改日期之外模板文件已经更新?

0 投票
2 回答
10072 浏览

amazon-cloudformation - 如何在 Cloud Formation 模板中使列表项有条件?

我有以下创建代码管道的云形成模板。管道分为三个阶段:

我还有一个条件:

当条件为假时,我想省略代码管道阶段列表中的第三项。

我尝试将 !If 与 AWS::NoValue 一起使用,但 NoValue 不是有效的列表项:

什么时候可以省略最后一项IncludeStagingEnv==false

0 投票
4 回答
3794 浏览

amazon-web-services - Is it possible to use AWS CodePipeline with Lightsail?

I'm working all the day and couldn't find the answer. So I'm asking you guys: is it possible to use AWS Pipeline with AWS Lightsail?

My objective is to store the code inside CodeCommit and use CodeBuild, CodeDeploy, CodePipeline and S3 to create a Continuous Deployment inside a Lightsail instance.

Those are the steps I think I have to follow to accomplish the task:

As you can see, I'm almost there. But I couldn't find any way to use my Lightsail instance with CodeDeploy. So, my question is: is it possible? Is there some limitation? Did I miss something really basic? Is there any other way to make the CD with Lighsail? Sorry, I'm getting a little crazy right here ahhaha.

0 投票
1 回答
613 浏览

amazon-web-services - 如何更新之前创建的 AWS CodePipeline 构建提供程序?

我之前使用 CodePipeline 控制台创建了一个 Jenkins 构建提供程序。在创建过程中,它会询问 Jenkins 服务器 URL。

现在,我需要更改我的 Jenkins 服务器 URL,但是当我尝试编辑时,没有任何选项可以更改构建提供程序。请参阅下面的快照:

在此处输入图像描述

我看到的唯一解决方案是添加一个新的。

我尝试使用 aws-cli 获取管道,

但是 JSON 响应只是对构建提供程序的引用:

我也找不到任何其他命令来管理构建提供程序。所以我的问题是我应该在哪里以及如何更新 AWS CodePipeline 中的现有构建提供程序配置?

0 投票
1 回答
99 浏览

amazon-web-services - AWS CodePipeline 永远不会正确触发 BlazeMeter

我在我的 AWS CodePipeline 中设置了 BlazeMeter 测试操作。设置运行良好,将我发送到 BlazeMeter 站点进行身份验证并选择测试。但是当我运行管道时,它只是停留在 BlazeMeter 操作“进行中”,直到超时。我已经通过 BlazeMeter 支持打开了一张票,但他们似乎什么也没看到。有没有人有让这个工作的经验?Cloudtrail 和 CodePipeline 日志没有关于发送到 BlazeMeter 的请求的任何详细日志信息,所以我有点卡住了。