问题标签 [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 回答
6124 浏览

amazon-web-services - 带有 GitHub 的 AWS CodeBuild - 仅适用于特定目录

我正在尝试使用 AWS Pipeline、S3 和 CodeBuild 为 Angular 2 应用程序设置自动部署。

按照 Andrés 的教程,我能够连接 CodeBuild GitHub 存储库,并且该过程运行良好。

但是,我们的 Angular 应用程序位于更大的 repo 的子目录中。

有没有办法在 repo 中指定一个目录,以便只有在子目录更改时才会触发构建?

非常感谢。

0 投票
1 回答
1781 浏览

java - 使用 PrivilegedMode=TRUE 的 AWS 策划的 Docker 映像创建 CodeBuild 项目

我使用以下命令确认这aws/codebuild/java:openjdk-8是精选的 CodeBuild 映像之一。

尽管aws/codebuild/java:openjdk-8是经过策划的映像,但当我尝试使用该映像和 PrivilegedMode=true 参数创建构建项目时,我收到一个没有意义的 4XX 错误:“只能为自定义或 AWS CodeBuild Docker 策划的项目设置 PrivilegedMode图片。”

0 投票
1 回答
1541 浏览

amazon-web-services - 适用于 python 的 AWS CodeBuild 不会失败

我可能误解了这个概念,但是当您的代码中有错误并且无法构建该代码时,Codebuild 步骤是否会失败?我假设如果我的构建命令中的一个命令失败,它会通知我和/或在构建之后停止进一步的操作。

我有一个非常简单的 Codebuild 假设运行 python 代码(在这种情况下是我的单元测试)。下面是我的 buildspec.yml:

在那个run_unittests.py文件中有一个语法错误

运行结束时,它显示为成功,但在日志文件中,我看到它看到记录了 python 语法错误!

我失败的唯一方法是当我的 buildspec.yml 文件中出现错误时,而不是在我的 python 文件中!它甚至进入 CodePipleline 的下一步!

我误解了吗?如果不是,我怎样才能让它在 python 代码或单元测试断言上失败?

以下是我在详细信息中看到的行:

0 投票
1 回答
657 浏览

docker - 在 ECS 中更新任务定义

我目前正在尝试通过 CodePipeline 自动化我的构建和部署过程。在我的代码在 codebuild 中完成构建后,我想通过 CodeBuild 更新我的任务定义并通过 aws cli 更新我的服务。

我在更新服务时遇到问题,因为我无法跟踪修订号。有没有办法让更新的服务知道使用最新的版本?我知道你可以指定一个 json,但我怎样才能操纵修订号,使服务指向我的注册表中的正确图像?

0 投票
2 回答
2402 浏览

amazon-web-services - 如何在 AWS Codepipeline 中自动部署 api 网关

目前我可以通过推送到 github 来部署 lambda。我还自动部署了一个 lambda,但这只是因为 api 网关是 lambda yaml 文件中的一个事件

如何使用 swagger 文件部署 api 网关?

0 投票
3 回答
1755 浏览

amazon-web-services - 在 CodeBuild Docker Image 之上构建 Docker 映像

由于 AWS CodeBuild 提供“Docker”精选图像 ( http://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref.html ),我想重用其中一个来构建我的自定义CodeBuild 映像 ( http://docs.aws.amazon.com/codebuild/latest/userguide/sample-docker-custom-image.html )。

我不知道 CodeBuild 注册表 URL。如何引用这些图像(FROM)?

我可以自己重建我需要的图像 ( https://github.com/aws/aws-codebuild-docker-images ) 并将其托管在私有 ECR 中,但这会浪费时间和存储空间。

0 投票
1 回答
196 浏览

python - 在 AWS Codebuilder 中安装运行文件的依赖项

我正在尝试在从 CodeCommit 中提取的 AWS codebuilder 上运行测试文件,但这些文件有许多需要安装的依赖项。其中许多都包含在 Anaconda 中,但我担心如果我每次都安装 anaconda 会大大降低构建速度,因为 anaconda 的大小。有没有办法有效地安装依赖项列表,还是每次在构建规范的安装部分都必须手动执行?或者有没有一种方法可以让我安装一次依赖项而不是每次构建时都安装。

0 投票
5 回答
8885 浏览

bash - 无法在 AWS Codebuild 中运行“源”

我正在使用 AWS CodeBuild 和 Terraform 来自动部署基于 Lambda 的服务。我有一个非常简单buildscript.yml的方法来完成以下工作:

  • 获取依赖项
  • 运行测试
  • 获取 AWS 凭证并保存到文件(详情如下)
  • 获取 creds 文件
  • 运行 Terraform

“获取 creds 文件”这一步是我遇到困难的地方。我有一个简单的 bash one-liner,它可以抓取 AWS 容器的凭据curl 169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI,然后将它们保存到以下格式的文件中:

当然,显而易见的步骤是简单地创建source这个文件,以便可以将这些变量添加到我的环境中供 Terraform 使用。但是,当我这样做时source /path/to/creds_file.txt,CodeBuild 会返回:

我试图通过安装sourceapt但后来我收到一个错误,说source找不到(是的,我已经运行了apt update等)。我将标准 Ubuntu 映像与 Python 2.7 环境一起用于 CodeBuild。我该怎么做才能在 Codebuild 中获取 Terraform 工作凭据以获取此凭据文件的源代码。

谢谢!

0 投票
2 回答
5745 浏览

node.js - 通过 aws codebuild 为 nodejs lambda 创建 zip 文件的问题

我想通过 aws codebuild 过程为我的 nodejs lambda 创建一个 zip 工件 - 以便 lambda 函数可以将此 zip 文件用作 S3 中的源,并且我们有一个部署“证明”,用于在 codebuild 中使用 git commit id 进行管理

我在 github-repo 中的文件结构是

现在对于nodejs lambda项目,我想要没有zip文件夹的zip文件(对于lambda中的nodejs项目,我们需要它)所以zip应该直接包含以下文件

问题:

1) S3 中的输出 zip 包含在文件夹中,即 .zip->rootfolder->myfile.js 而不是我们需要 .zip->myfiles.js 这对 lambda 不可用,因为对于 nodejs 它应该在根 zip 中有文件而不是在里面它们(文件夹内没有相对路径)

2) 路径 - 如您所见,myfile.js 位于文件夹内他们两个 - 我可以只为 myfile.js 而不是为 node_module 文件夹设置丢弃路径吗?我当前的 yaml 文件:

如果有人可以为此提供解决方案,那就太好了?

如果解决方案不包含更改 github-repo 文件夹结构,那就太好了,我也想在该 repo 中对其他文件重复此操作,以创建其他 lambda 函数。

编辑:

我在下面使用了 yaml 文件,@awsnitin 回答后一切正常

0 投票
1 回答
694 浏览

maven - AWS CodeBuild 无法创建 Fat jar

我已经创建了 AWS Lambda 函数,现在我正在尝试在 AWS 上设置部署。我创建了包含以下内容的 buildspec.yml 文件:

现在,当我将代码推送到 AWS CodeCommit 时,构建过程成功运行,但在输出 s3 存储桶中只有 130 kb 的输出文件。这意味着创建的包中缺少我的依赖项,当我尝试运行我的 Lambda 时,出现以下错误:

加载类 com.test.handler 时出错:org/apache/log4j/Logger:类 java.lang.NoClassDefFoundError

在我的 pom.xml 文件中,我添加了 shade 插件:

当我在我的 PC 上运行命令mvn package时,一切正常,我得到包含所有依赖项的 jar 文件(大小略超过 10mb),如果我手动将此 jar 部署到 AWS lambda 函数,一切都按预期工作。

我也尝试按照本教程进行操作:Link,但没有任何改变。

有人可以帮忙吗,我真的不知道我在这里缺少什么:/