问题标签 [aws-codebuild]

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 回答
2868 浏览

terraform - CodeBuild 源阶段的 terraform AWS CodePipeline 配置

我正在尝试使用 terraform 创建 CodePipeline 作业。我已经有一个工作的 CodeBuild 项目。这是我的资源:

当我尝试terraform apply我得到的错误是Error creating CodePipeline: InvalidActionDeclarationException: Action configuration for action 'Source' contains unknown configuration 'ProjectName'. 在哪里可以找到此配置部分的正确架构?到目前为止,我发现的所有文档和示例都是通用的,并且省略了我在此处需要的特定 CodeBuild 设置/架构。

0 投票
1 回答
1443 浏览

github - 将 git merge 集成到 master 作为 AWS Codepipeline 中的最后一步

我们使用 GitHub 作为我们的源存储库,使用 AWS CodeBuild 编译来自 GitHub 的代码,使用 Elastic Beanstalk 来托管环境,使用 CodePipeline 来触发提交构建并将代码部署到不同的环境,生产环境是最终环境。

作为 CodePipeline 的最后一步,我想添加的是在将构建部署到生产环境后合并回 master。我在谷歌上做了一个简短的搜索,但找不到任何关于如何启动 git 合并的好的参考资料。

有人有从 CodePipeline 触发合并的经验吗?

0 投票
1 回答
1182 浏览

amazon-web-services - 从 AWS 代码构建中制作公共 s3 工件

默认情况下,如何将工件上传到 s3 作为aws code build公共的一部分?我正在尝试构建自动化。目前构建成功;但是,创建的工件不是公开的,因此我无法共享链接(作为邮件的一部分)。默认情况下,服务器端加密设置为Using AWS KMS master key: aws/s3 (default).当尝试encryption keyadvanced settingsaws 代码构建配置的部分中删除时,它给出了错误。我计划运行一个 aws lambda 函数,该函数将在构建结束时发送一封带有工件链接的邮件,作为 aws 代码管道的一部分。

编辑: 我尝试将以下内容添加为权限,但没有帮助:

正如这里提到的

如果我从 S3 手动选择none加密,则链接确实可以下载。但是,我需要一种编程方式来执行此操作,因为我正在尝试将整个过程自动化作为构建自动化的一部分。到目前为止,我也无法通过它来实现这一目标boto3

提前致谢!

0 投票
3 回答
6120 浏览

python - Python 3.6 在 AWS CodeBuild 中不可用,Python 3.5 在 AWS Lambda 中不可用

我有一个 Python 3 项目,我试图通过 AWS Codestar -> Codepipeline -> Codebuild -> Cloudformation 将其部署到 AWS Lambda。

我的项目(实际上只包含一个简单的 API Gateway 处理程序方法)导入了一个 Python 3(需要 3 个)项目(报纸)。我在家用计算机上使用 Virtualenv 15.1.0,如果我用 Python 3.5 安装 Newspaper,然后上传到 Lambda(Python 3.6 运行时),它会引发与 PIL / Pillow 相关的错误。

首先它说它找不到_image,这似乎可以通过删除站点包中的PIL目录来解决,但这只会导致它抛出找不到PIL的错误。

但是,如果我使用 Python 3.6 构建然后上传到 Lambda,它就可以正常工作(无论我是否删除 PIL)。

因此,在我看来,我无法使用 3.5 安装 Newspaper 并尝试在 3.6 运行时中执行。

所以,现在我正在尝试通过 Codestar 进行部署,但是 Codestar 似乎默认为 aws/codebuild/eb-nodejs-4.4.6-amazonlinux-64:2.1.3,即使对于 Python 项目也是如此,而且它似乎都可以在Yum 存储库是 Python 3.5,当然 Lambda 只有 3.6 运行时。

即使我在 Codebuild 本身中切换图像,似乎也没有任何使用 Python3.6 运行时构建的图像(根据文档)。甚至 Docker 镜像似乎也缺少 Python 3.6。

因此,我试图在我的 buildspec.yml 文件的 INSTALL 阶段在 Codebuild 中安装 Python 3.6,但是在安装后我找不到 python3* 可执行文件。

我唯一能想到的另一件事是创建 Codestar 项目,编辑 codebuild 以使用 Ubuntu,然后安装所有东西(就像我在本地做的那样),但是在 Codestar 中没有办法做到这一点,我觉得这可能会带来我掉进了一个兔子洞,这几乎不是自动化的。有没有办法在我的项目中将该配置作为代码进行?

编辑 尝试从源代码构建和安装 Python 3.6,但是当尝试安装 Pip 时,我收到错误消息,提示未安装 SSL。回顾构建日志时,似乎也没有安装其他“位”。

所以,我的问题是:

  • 如何将 Python 3.6 放入从 Codestar 项目提供的 Codebuild 环境中?
  • 我应该继续尝试从源代码构建它还是切换到 Ubuntu 环境?
  • 如何在我的代码/项目中自动配置图像/环境?

编辑 1对于其他人,我用于安装和使用 Python3.6 的完整 buildspec.yml 如下。请注意,它使一切尽可能安静,以减少日志消息、降低 Cloudwatch 成本并加快进程。通过这样做(安装 Python 并构建我的应用程序),我最终将整个过程缩短了大约 90 秒。由于 CodeBuild 根据花费的时间收费,因此这一点至关重要。

0 投票
1 回答
1436 浏览

amazon-web-services - 以编程方式取消设置 aws s3 中文件的加密

我正在通过aws code build. 生成的 apk 文件默认应用server side encryption (aws-kms)我可以通过取消选择 ASW-KMS 从 s3 存储桶中单击如下所示手动取消设置加密

这给出了以下弹出窗口

在这里None手动选择选项将使链接可下载。我想以编程方式实现这一目标

我已经尝试过添加这里提到的权限。还用 python boto3 做了一些实验。然而到目前为止还没有取得任何成功。提前致谢!

0 投票
1 回答
206 浏览

amazon-web-services - Jekyll + AWS Codebuild - EventMachine Gem 失败

我正在尝试在 Codebuild 上运行 Jekyll 博客。在本地没有问题,但是当尝试在 Codebuild 上运行它时,它一直卡在这个问题上:

您的捆绑包已锁定到 eventmachine (1.2.3),但在 Gemfile 中列出的任何源中都找不到该版本。如果您没有更改来源,则意味着 eventmachine (1.2.3) 的作者已将其删除。您需要将您的捆绑包更新为尚未删除的不同版本的 eventmachine (1.2.3) 才能安装。

但是,来源是普通的rubygems,我检查了版本是否存在。我认为这可能是 AWS 代码构建中的一个错误,但认为在这里发布会很好。有没有人有类似的问题?欢迎任何帮助。我尝试了以下方法来解决它:

1) 移除 Gemfile 锁

2) 在 Gemfile 上设置特定版本。

Bundle 在本地运行良好

0 投票
1 回答
1187 浏览

node.js - 在 Jenkins 中构建成功,但 AWS-Codebuild 给出插件错误

我有一个在 Jenkins 上成功构建的项目,但是当我尝试使用 AWS Codebuild 构建时,它会出现插件错误。该项目基本上是一个 NodeJS 和 ReactJS 项目。我们不想迁移到 Jenkins,因为我们是无服务器的,安装 jenkins 需要一个 EC2 实例。我们不想维护任何服务器。我为 AWS 代码构建尝试了以下环境:

我的 buildspec.yml 的前四个命令只有在我使用aws/codebuild/ubuntu-base:14.04codebuild 环境时才会执行。否则只有最后三个命令是我的 buildspec.yml 的一部分

下面是我的 buildspec.yml

以下是我在 npm 运行期间在 AWS codebuild 中的错误日志

此外,我在 Codebuild 中的 npm install 期间收到以下警告,但在 Jenkins 中没有收到此警告

下面是我的 webpack.config.js

0 投票
1 回答
316 浏览

amazon-web-services - 将 AWS 信息从 CloudFormation 导入 CodeBuild

我在 AWS 中有一个带有 Codestar、CodeBuild、CloudFormation 等的管道。

我试图弄清楚如何从返回到 CodeBuild 步骤的 CloudFormation 步骤获取信息。让我分解一下:

  1. 我有一个buildspec.yml用于 CodeBuild

    /li>
  2. 以上使用我们的启动 CloudFormation 构建template.yml

    /li>
  3. 此时,它会为 S3 存储桶创建一个唯一名称。惊人的。现在,buildspec.yml对于 CodeBuild 中的第 2 步,我想将项目推送到刚刚在 CloudFormation 模板中创建的 S3 存储桶。但是,我不知道如何从 CloudFormation 模板中获取 S3 存储桶的动态创建名称。我想要类似的东西:

    /li>

如何完成获取动态命名的 S3 存储桶以便推送到它?

我知道在 CloudFormation 模板中,您可以使用类似!GetAtt [ClientWebAssets, WebsiteURL]. 但是,我不知道如何从 cloudformation 模板中获取该信息并返回到 codebuild 模板中。

0 投票
1 回答
583 浏览

amazon-cloudformation - AWS Codestar -- 使用 node.js 模块依赖项构建

我正在使用 AWS Codestar。它集成了许多 AWS 服务,以便我可以git push进行部署。

它使用云形成。我有一个依赖于uuidnpm 的 lambda 函数。

如何在 Codestar 构建管道中包含此节点依赖项?Cloudformation SAM 使用 zip 文件,并将所有内容上传到 S3:

https://github.com/awslabs/serverless-application-model/blob/master/examples/2016-10-31/inline_swagger/template.yaml#L32

我不想构建一个 zip 文件并将其放入代码仓库中。

我的下一个计划是尝试npm install在 Codebuild 中运行:

http://docs.aws.amazon.com/codebuild/latest/userguide/sample-nodejs-hw.html#sample-nodejs-hw-files

0 投票
1 回答
2262 浏览

amazon-web-services - 等待代码构建并使用 aws cli 或 boto3 获取构建结果

我想等待 codebuild 构建并使用 aws cli 或 boto3 获取构建结果。似乎没有任何命令。我所能做的就是列出构建,但只有构建 ID。没有关于构建的信息(如果它仍在运行以及构建结果是什么)。