我使用CodePipeline带CodeCommit。按下master分支自动触发构建。在CodePipeline控制台中,可以清楚地看到我正在接收提交ID,但是我需要在构建环境中获取它,以便在构建它时可以将它们作为标签添加到ECS映像中。有没有一种进入构建环境的方法。

continuous-integration amazon-web-services continuous-deployment aws-codepipeline aws-codebuild
我设置AWS CodeBuild将大量工件文件写入S3.CodeBuild yaml文件定义了哪些文件和CodeBuild项目设置定义了S3存储桶.一切正常.
看起来当您从AWS CodePipeline触发AWS CodeBuild时,CodePipeline会忽略AWS CodeBuild的工件设置,而是强制将工件放入codepipline S3存储桶中的zip文件中.
有没有办法使用CodePipeline,但是它是否遵守AWS CodeBuild的工件设置?
有没有办法让 CodeBuild 项目一次执行一个构建任务(最大并发数 = 1)?
我知道 CodeBuild 的一个卖点是您可以同时运行构建,我喜欢这个功能。
但是,对于这个特定项目,我需要确保一次只执行该项目的一个 CodeBuild 构建任务。如果在前一个请求仍在运行时有传入的“startBuild”请求,我希望它排队等待,直到前一个构建任务完成。
作为该项目的附加信息,该项目在我们的各种 API(无服务器 API 和 EC2 上的遗留 API)上运行集成测试,同时运行这些测试可能会由于它们的设置和拆卸过程而导致测试失败。
我将AWS CodePipeline与CodeBuild结合使用来构建应用程序并将其部署到ElasticBeanstalk。
CodePipeline生成如下版本名称:
code-pipeline-1122334455667-MyApp-1ac31f7c-1343-471x-a7e8-46b24f1785a
是否可以自定义这些标签?
amazon-web-services amazon-elastic-beanstalk aws-codepipeline aws-codebuild
如何使用CodeBuild的文件删除S3 存储桶中不需要的文件作为CodePipeline 中管道的输出?buildspec.yml
例如:
buildGitHub 存储库的文件夹放在指定的 S3 存储桶中,因此该存储桶可以用作静态网站。
我之前将一个文件推送到我不再需要的存储桶中。buildspec.yml在将管道的工件推送到存储桶之前,如何使用文件“清理”存储桶?
一个示例buildspec.yml文件:
version: 0.2
phases:
build:
commands:
- mkdir build-output
- find . -type d -name public -exec cp -R {} build-output \;
- find . -mindepth 1 -name build-output -prune -o -exec rm -rf {} +
post_build:
commands:
- mv build-output/**/* ./
- mv build-output/* ./
- rm -R build-output
artifacts:
files:
- '**/*'
Run Code Online (Sandbox Code Playgroud)
应该命令:
rm -rf *
Run Code Online (Sandbox Code Playgroud)
在这样的 …
amazon-s3 amazon-web-services aws-codepipeline aws-codebuild
当我从dev分支到master分支打开PullRequest时,我想设置一个构建webhook。AWS Codebuild具有基于网络挂接HEAD_REF和BASE_REF缺乏详细的文档。
他们代表什么?
创建 Codebuild 项目时,可以在 Artifacts 部分配置缓存以加快后续构建。
Docker layer cache是那里的选择之一。AWS 文档说:
LOCAL_DOCKER_LAYER_CACHE 模式缓存现有的 Docker 层。对于构建或拉取大型 Docker 镜像的项目,此模式是一个不错的选择。它可以防止由于从网络中拉下大型 Docker 镜像而导致的性能问题。
笔记
您只能在 Linux 环境中使用 Docker 层缓存。
必须设置特权标志,以便您的项目具有所需的 Docker 权限。
在使用 Docker 层缓存之前,您应该考虑安全隐患。
问题是:这些安全隐患是什么?
目前还没有专门集成 API 网关和 Codebuild 的实际指南,因此我正在研究几个并尝试适应。
我已根据本文档设置了我的角色和策略,并且已成功设置并运行了我的 CodeBuild 项目。
我已经设置了一个 POST 端点,参考CodeBuild API 文档中的操作:
我正在使用端点的测试选项卡来发送
{ "project": "my-project" }
但我得到了这个回应
{
"Output": {
"__type": "com.amazon.coral.service#UnknownOperationException",
"message": null
},
"Version": "1.0"
}
Run Code Online (Sandbox Code Playgroud)
日志
Execution log for request b0ee0d54-c1d0-11e9-9ff3-e9448aaf711c
Sun Aug 18 15:56:07 UTC 2019 : Starting execution for request: b0ee0d54-c1d0-11e9-9ff3-e9448aaf711c
Sun Aug 18 15:56:07 UTC 2019 : HTTP Method: POST, Resource Path: /vegankit/stage
Sun Aug 18 15:56:07 UTC 2019 : Method request path: {}
Sun Aug 18 15:56:07 UTC …Run Code Online (Sandbox Code Playgroud) amazon-web-services aws-api-gateway aws-codebuild api-gateway
我正在尝试在脚本中使用来自termcolor 的颜色显示彩色日志,当我在本地运行我的脚本时一切正常,但是当我的脚本由 aws codePipeline --> codeBuild 运行时,输出格式看起来像 termcolor 不起作用。
第一张图片显示了 aws 上的当前输出。
第二张图显示了我本地 IDE(VS Code)的输出
在我的脚本中,我使用类似的东西:print(colored('Validating ObjecstNamePrefix parameter value...', 'yellow'))显示黄色文本
图像编号 3 显示了我如何在我的 spec.yaml 中安装(正确)termcolor
最后一张图片显示蓝色输出,这个输出颜色不是从我的脚本处理的,最初是从 aws 日志控制台处理的,对我来说这意味着可以使用颜色。
欢迎任何帮助解决它!
python amazon-web-services aws-codepipeline termcolor aws-codebuild
我正在创建与 SonarQube 集成的 CodeBuild,因此我直接在 Buildspec.yaml 中传递值和声纳凭据
我尝试使用以下命令从 SecretManager 中检索,而不是直接进行硬编码,如以下链接中所述。但它没有得到正确的值。它抛出一个错误。
命令:'{{resolve:secretsmanager:MyRDSSecret:SecretString:username}}'
链接:https : //docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager
错误[ERROR] SonarQube 服务器 [{{resolve:secretsmanager:arn:aws:secretsmanager:us-east-1:********:secret:**********:SecretString:SonarURL }}] 无法连接
我如何使用echo '{{resolve:secretsmanager:arn:aws:secretsmanager:us-east-1:***:secret:**************:SecretString:**** ***}}'
注意:我的命令中的所有 * 都是 secretname 和 secreturl
yaml amazon-web-services aws-codepipeline aws-codebuild aws-secrets-manager
aws-codebuild ×10
amazon-s3 ×1
api-gateway ×1
docker ×1
python ×1
security ×1
termcolor ×1
yaml ×1