问题标签 [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.
terraform - CodeBuild 源阶段的 terraform AWS CodePipeline 配置
我正在尝试使用 terraform 创建 CodePipeline 作业。我已经有一个工作的 CodeBuild 项目。这是我的资源:
当我尝试terraform apply
我得到的错误是Error creating CodePipeline: InvalidActionDeclarationException: Action configuration for action 'Source' contains unknown configuration 'ProjectName'
. 在哪里可以找到此配置部分的正确架构?到目前为止,我发现的所有文档和示例都是通用的,并且省略了我在此处需要的特定 CodeBuild 设置/架构。
github - 将 git merge 集成到 master 作为 AWS Codepipeline 中的最后一步
我们使用 GitHub 作为我们的源存储库,使用 AWS CodeBuild 编译来自 GitHub 的代码,使用 Elastic Beanstalk 来托管环境,使用 CodePipeline 来触发提交构建并将代码部署到不同的环境,生产环境是最终环境。
作为 CodePipeline 的最后一步,我想添加的是在将构建部署到生产环境后合并回 master。我在谷歌上做了一个简短的搜索,但找不到任何关于如何启动 git 合并的好的参考资料。
有人有从 CodePipeline 触发合并的经验吗?
amazon-web-services - 从 AWS 代码构建中制作公共 s3 工件
默认情况下,如何将工件上传到 s3 作为aws code build
公共的一部分?我正在尝试构建自动化。目前构建成功;但是,创建的工件不是公开的,因此我无法共享链接(作为邮件的一部分)。默认情况下,服务器端加密设置为Using AWS KMS master key: aws/s3 (default).
当尝试encryption key
从advanced settings
aws 代码构建配置的部分中删除时,它给出了错误。我计划运行一个 aws lambda 函数,该函数将在构建结束时发送一封带有工件链接的邮件,作为 aws 代码管道的一部分。
编辑: 我尝试将以下内容添加为权限,但没有帮助:
正如这里提到的
如果我从 S3 手动选择none
加密,则链接确实可以下载。但是,我需要一种编程方式来执行此操作,因为我正在尝试将整个过程自动化作为构建自动化的一部分。到目前为止,我也无法通过它来实现这一目标boto3
。
提前致谢!
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 根据花费的时间收费,因此这一点至关重要。
amazon-web-services - 以编程方式取消设置 aws s3 中文件的加密
我正在通过aws code build
. 生成的 apk 文件默认应用server side encryption (aws-kms)
我可以通过取消选择 ASW-KMS 从 s3 存储桶中单击如下所示手动取消设置加密
这给出了以下弹出窗口
在这里None
手动选择选项将使链接可下载。我想以编程方式实现这一目标。
我已经尝试过添加这里提到的权限。还用 python boto3 做了一些实验。然而到目前为止还没有取得任何成功。提前致谢!
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 在本地运行良好
node.js - 在 Jenkins 中构建成功,但 AWS-Codebuild 给出插件错误
我有一个在 Jenkins 上成功构建的项目,但是当我尝试使用 AWS Codebuild 构建时,它会出现插件错误。该项目基本上是一个 NodeJS 和 ReactJS 项目。我们不想迁移到 Jenkins,因为我们是无服务器的,安装 jenkins 需要一个 EC2 实例。我们不想维护任何服务器。我为 AWS 代码构建尝试了以下环境:
我的 buildspec.yml 的前四个命令只有在我使用aws/codebuild/ubuntu-base:14.04
codebuild 环境时才会执行。否则只有最后三个命令是我的 buildspec.yml 的一部分
下面是我的 buildspec.yml
以下是我在 npm 运行期间在 AWS codebuild 中的错误日志
此外,我在 Codebuild 中的 npm install 期间收到以下警告,但在 Jenkins 中没有收到此警告
下面是我的 webpack.config.js
amazon-web-services - 将 AWS 信息从 CloudFormation 导入 CodeBuild
我在 AWS 中有一个带有 Codestar、CodeBuild、CloudFormation 等的管道。
我试图弄清楚如何从返回到 CodeBuild 步骤的 CloudFormation 步骤获取信息。让我分解一下:
我有一个
/li>buildspec.yml
用于 CodeBuild以上使用我们的启动 CloudFormation 构建
/li>template.yml
此时,它会为 S3 存储桶创建一个唯一名称。惊人的。现在,
/li>buildspec.yml
对于 CodeBuild 中的第 2 步,我想将项目推送到刚刚在 CloudFormation 模板中创建的 S3 存储桶。但是,我不知道如何从 CloudFormation 模板中获取 S3 存储桶的动态创建名称。我想要类似的东西:
如何完成获取动态命名的 S3 存储桶以便推送到它?
我知道在 CloudFormation 模板中,您可以使用类似!GetAtt [ClientWebAssets, WebsiteURL]
. 但是,我不知道如何从 cloudformation 模板中获取该信息并返回到 codebuild 模板中。
amazon-cloudformation - AWS Codestar -- 使用 node.js 模块依赖项构建
我正在使用 AWS Codestar。它集成了许多 AWS 服务,以便我可以git push
进行部署。
它使用云形成。我有一个依赖于uuid
npm 的 lambda 函数。
如何在 Codestar 构建管道中包含此节点依赖项?Cloudformation SAM 使用 zip 文件,并将所有内容上传到 S3:
我不想构建一个 zip 文件并将其放入代码仓库中。
我的下一个计划是尝试npm install
在 Codebuild 中运行:
http://docs.aws.amazon.com/codebuild/latest/userguide/sample-nodejs-hw.html#sample-nodejs-hw-files
amazon-web-services - 等待代码构建并使用 aws cli 或 boto3 获取构建结果
我想等待 codebuild 构建并使用 aws cli 或 boto3 获取构建结果。似乎没有任何命令。我所能做的就是列出构建,但只有构建 ID。没有关于构建的信息(如果它仍在运行以及构建结果是什么)。