问题标签 [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 投票
4 回答
7766 浏览

amazon-web-services - 是否可以结合 AWS CodeBuild 和 CodePipeline 来构建描述的 CI 工作流程?

我正在尝试使用标准 AWS 工具创建以下 CI 流程:在创建或更新 Github 中的拉取请求时运行提交的构建。或者在我的命令上运行任何分支的构建。与 Codeship、Travis 和许多其他 CI 服务提供的非常相似。

CodeBuild + CodePipeline 可以吗?我注意到我必须在 CodePipeline 中指定确切的分支,不幸的是,我找不到如何将 Github Pull 请求集成到其中。也许我忽略了它?

0 投票
3 回答
1639 浏览

amazon-web-services - AWS CodePipeline 成功,但未正确部署到 Elastic Beanstalk

当我调用应用程序 URL 时,将我的 WAR 文件(成功)部署到 Elastic Beanstalk 给我一个 404 Not Found。我可以在 /var/lib/tomcat8/webapps/ROOT/ 中看到一个 application.war 文件,而不是 META-INF 和 WEB-INF,当我手动部署时,它就在那里。

当我从 S3 中提取 WAR 文件并将其手动部署到 Elastic Beanstalk 时,它就像一个魅力。注意:这与 CodeBuild 在我的管道中生成的 WAR 文件相同。更好的是,如果我将文件安全地复制 (scp) 到本地计算机并将其上传到 Elastic Beanstalk,它也可以正常工作。

似乎在部署之前一切正常,甚至将工作 WAR 文件部署到 Elastic Beanstalk。

通过eb-activity.log我可以看到它识别出 WAR 文件并将其从临时目录部署到/var/lib/tomcat8/webapps/ROOT,但它没有解包并且容器/网络服务器没有重新启动。

如何使用 CodePipeline 正确部署 WAR 文件?

0 投票
1 回答
5775 浏览

amazon-web-services - 在 AWS CodeBuild 工作线程上使用 IAM 角色

有没有办法授予构建过程使用的 IAM 实例角色?

在我的特殊情况下,我需要在构建期间执行一些 s3 操作(与归档工件无关)。

到目前为止,我发现的唯一替代方法是在 aws codebuild 配置页面上的环境变量中添加 aws 密钥和密码。

将 IAM 角色附加到执行构建的 ec2 实例或容器会更安全。目前(2016-12)可能吗?

0 投票
3 回答
6064 浏览

amazon-web-services - 部署 ElasticBeanstalk 时 AWS 代码管道出错

我创建了一个管道,它执行以下操作:

  1. Git 更改触发下一个操作(代码构建)
  2. Codebuild 从 git 源启动并构建一个 docker 镜像
  3. 在 Elasticbeanstalk 上设置最新的 docker 容器

前两个步骤工作正常,git 更改启动代码构建,代码构建构建一个 docker 映像,然后尝试在 Elasticbeanstalk 上设置它(失败)。抛出以下错误:

操作配置无效 操作失败,因为找不到工件或 Amazon S3 存储桶。工件存储桶的名称:MY_BUCKET_NAME。验证此存储桶是否存在。如果存在,请检查生命周期策略,然后尝试发布更改。

在我的代码构建项目中,我将工件位置设置为 MY_BUCKET_NAME 并将其命名为 aws-test-artifact。这就是我所要做的吗?

我试过环顾四周,在这个问题上找不到任何东西。

0 投票
0 回答
54 浏览

python - 在 python 类中找不到错误

下面是我的代码。我在这门课上有问题。这不是完整的代码,而只是类。如果您最后检查 if/else 条件,我将调用类外的函数“check_deployment_update_status(job_id)”。我在那里遇到问题。

我的代码运行良好,直到该行。但在那之后我没有从那个函数中得到输出。所以,我认为这个函数最后没有被调用。任何人都可以帮助为什么在 if/else 操作函数没有被调用之后。

仅供参考 - 我的代码所做的是,这个代码在 lambda 中,它集成在代码管道中。此函数用于从 codepipeline 通过 lambda 部署到 Elastic beanstalk。我正在尝试集成可以继续 lambda 的 continue 令牌,因此 lambda 可以检查它已完成、正在运行或失败的工作状态。如果有人以前用 codepipeline 和 lambda 做过这个,请发表评论。

0 投票
1 回答
1310 浏览

amazon-web-services - 即使在允许之后,AWS codebuild 也无法访问 repos

所以我正在尝试让 codebuild 访问我的 GitHub 存储库,一旦登录并单击authorise,codebuild 仍然不会显示来自我的帐户和组织的存储库?

我进入了我的 GitHub设置/oauth_application_policy,我注意到没有AWS codebuild批准的应用程序?!即使在授权之后,也不会显示任何内容。

我之所以需要codebuild通过实际codebuild页面创建项目,是因为通过codepipeline页面创建项目时,我无法对创建的codebuild项目进行编辑或添加工件!我需要能够添加一个工件位置,否则action我的一个codepipeline将失败。

这是一个已知错误吗?

0 投票
2 回答
3132 浏览

amazon-web-services - Docker 映像构建为 AWS CodePipeline 步骤

我能够在 github 和 AWS CodePipeline 之间设置集成,所以现在我的代码在 lambda 函数的推送事件之后上传到 S3。这很好用。

S3 上带有源代码的新 ZIP 触发了构建代码的管道。没关系。现在我还想为该项目构建一个 docker 映像。

第一个问题是您不能混合使用项目(nodejs)构建和 docker 构建。很好,有道理。下一个问题是您不能为 docker 构建提供另一个 buildspec.yml。您已经手动指定了构建命令,好的,这是一种解决方法。

最大的问题,或者说缺乏我的理解,是如何将 docker build 作为管道的一部分?第一个构建步骤构建项目,下一个构建步骤构建 docker 映像。两个独立的 AWS CodeBuild。

问题是管道构建步骤必须在输出上产生一个工件。但是 docker build 不会生成任何文件,并且看起来 docker build 之后的最终 docker push 没有被管道服务限定为工件。

有没有办法做到这一点?

谢谢

0 投票
3 回答
18132 浏览

git - AWS CodePipeline,构建失败并收到错误为 YAML_FILE_ERROR M

我是 AWS CodePipeline 的新手,过去从未使用过 Jenkins 等任何持续集成工具。我创建了一个新的 AWS CodePipeline作为 AWS CodeCommit(代码存储库)-> CodeBuild(不是 docker,环境是 NodeJS 7)- > AWS 代码部署。一切都只在 AWS 上。这是一个 Angular2 项目,最终部署在 EC2 实例(Windows server 2008)上运行。在我的本地机器上,我可以通过活动 IAM 用户(Git 访问)将我的代码提交给 AWS CodeCommit,然后我可以看到 CodePipleline 在 Source 正常(绿色)但下一步即构建失败(红色颜色)。当我单击其详细信息时,我可以看到以下错误日志:-

https://forums.aws.amazon.com/ 2016/12/23 18:21:16 等待代理 https://forums.aws.amazon.com/ 2016/12/23 18:21:36 阶段是DOWNLOAD_SOURCE https://forums.aws.amazon.com/ 2016/12/23 18:21:38 阶段完成:DOWNLOAD_SOURCE 成功:false https://forums.aws.amazon.com/ 2016/12/23 18:21: 38 阶段上下文状态代码:YAML_FILE_ERROR 消息:YAML 文件不存在 https://forums.aws.amazon.com/ 2016/12/23 18:21:38 运行时错误(YAML 文件不存在)

有人可以指导我解决这个错误吗?我不知道这个 YAML 文件是什么意思。我用谷歌搜索,但没有发现与我的 NodeJS Angular 项目相关的内容。

谢谢你,维诺德库马尔

0 投票
2 回答
4400 浏览

amazon-web-services - CodePipeline:如何从 GitHub 引用嵌套 CloudFormation 堆栈作为源

我们的 CloudFormation 模板存储在 GitHub 中。在 CodePipeline 中,我们使用 GitHub 作为源,但当嵌套 CloudFormation 堆栈未存储在 S3 上时,我们无法引用它们。

在 CodePipeline 中使用 GitHub 作为源时,我们如何引用 CloudFormation 嵌套堆栈?

如果这不可能,我们如何在 CodePipeline 中的 Source Stage(来自 GitHub)和 Deploy Stage 之间将 CloudFormation 模板从 GitHub 上传到 S3?

0 投票
2 回答
2387 浏览

amazon-web-services - 无法使用 CodeDeploy 部署来自 CodeBuild 的工件

使用 CodeBuild,我编译了我的 SpringBoot 应用程序并将生成的 jar 放在一个名为deploy/. 最后,我buildspec.yml提供:

当我将其插入 CodePipeline 时,这会在 S3 中创建一个 zip 文件。但问题是,这个 zip 文件包含根文件夹,即deploy. 所以zip文件的结构是:

这导致 CodeDeploy 找不到 的问题appspec.yml,因为它没有在 deploy 文件夹中查找。我一直在努力克服这个问题,在构建过程结束时提供一个 zip 文件作为工件,但随后在管道中它又被压缩了..

任何想法如何解决这个问题将不胜感激。