- 开发人员工具›
- AWS CodeBuild›
- 常见问题
AWS CodeBuild 常见问题
一般性问题
什么是 AWS CodeBuild?
AWS CodeBuild 是一项在云中完全托管的持续集成服务。CodeBuild 可编译源代码、运行测试,并生成可供部署的软件包。使用 CodeBuild,您无需预置、管理和扩展自己的构建服务器。CodeBuild 可自动扩展和缩减以及并发处理多项构建任务,因此您的构建任务不必在队列中等待。您可以使用 CodeBuild 预先打包的构建环境快速开始,也可以使用自定义构建环境来使用自己的构建工具。使用 CodeBuild,您只需按分钟付费。
为什么应该使用 CodeBuild?
您不必自行安装、修补和维护构建服务器软件,可以享受 CodeBuild 的完全托管体验。您将构建任务提交给 CodeBuild 后,它会为每个构建任务创建临时计算容器,在容器中运行构建任务,完成后丢弃容器。您无需管理构建服务器硬件或软件。CodeBuild 还会根据您的构建任务量自动进行扩展。它会立即处理您提交的每个生成任务,可以并发运行各个生成任务,也就是说,您的生成任务永远不会在队列中等待。
CodeBuild 如何定价?
有关详细信息,请参阅 AWS CodeBuild 定价页面。
我可以用 CodeBuild 自动执行发布过程吗?
符合。CodeBuild 与 AWS CodePipeline 集成。您可以添加构建操作,设置在云中运行的持续集成和持续交付过程。您可以在此处了解如何从 CodePipeline 控制台设置和监控您的构建任务。
使用 CodeBuild
什么是构建项目?
构建项目用于定义 CodeBuild 运行构建任务的方式。它包括的信息有源代码获取位置、使用的构建环境、运行的构建命令和存储构建输出的位置等。生成环境是由操作系统、编程语言运行时和 CodeBuild 用于运行生成任务的工具组成的。
如何配置构建项目?
可以通过控制台或 AWS CLI 配置构建项目。您指定源存储库位置、运行时环境、构建命令、容器担任的 IAM 角色和运行构建任务所需的计算类。您也可以选择在 buildspec.yml 文件中指定生成命令。
CodeBuild 支持哪些源存储库?
CodeBuild 可以连接到 AWS CodeCommit、S3、GitHub 和 GitHub Enterprise 为构建任务拉取源代码。
CodeBuild 支持哪些编程框架?
CodeBuild 为支持的 Java、Ruby、Python、Go、Node.js、Android、.NET Core、PHP 和 Docker 版本提供预配置环境。您也可以自定义自己的环境,方法是创建 Docker 镜像并将其上传到 Amazon EC2 Container Registry 或 Docker Hub 注册表。然后您就可以在自己的构建项目中引用此自定义镜像。
CodeBuild 提供了哪些预配置的 Windows 构建运行时?
CodeBuild 为 .NET Core 2.0 提供预配置的 Windows 构建环境。我们也希望为 Microsoft .NET Framework 客户(许多客户已拥有使用 Microsoft 专有库的许可证)提供预配置的构建环境,但 Microsoft 目前并不愿意与我们合作满足这些客户的要求。通过创建 Docker 镜像并将其上传到 Amazon EC2 Container Registry 或 Docker Hub 注册表,您可以自定义您的环境,以支持 .NET Framework 等其他构建目标。然后您就可以在自己的构建项目中引用此自定义镜像。
构建任务运行时会发生什么?
CodeBuild 为构建项目中定义的类创建一个临时计算容器,用指定的运行时环境加载它,下载源代码,执行项目中配置的命令,将生成的项目上传到 S3 存储桶后销毁该计算容器。在构建期间,CodeBuild 会将构建输出流式传输到服务控制台和 Amazon CloudWatch。
如何设置第一个构建程序?
登录 AWS 管理控制台,创建一个构建项目,然后运行构建任务。有关 CodeBuild 的介绍,请参阅入门了解分步教程。您也可以使用 CodeBuild Local 在本地测试和调试您的构建。
我可以配合使用 CodeBuild 和 Jenkins 吗?
符合。可以使用 CodeBuild Plugin for Jenkins 将 CodeBuild 集成到 Jenkins 任务中。生成任务会发送到 CodeBuild,无需配置和管理 Jenkins 工作程序节点。
我该如何查看过去的构建结果?
您可以通过控制台、CloudWatch 或 API 获取过去的构建任务结果。生成结果包括结果 (成功或失败)、生成持续时间、输出项目位置和日志位置。借助 CodeBuild 控制面板,您可以查看各项指标来了解一段时间内的构建行为。该控制面板会显示已尝试执行、成功和失败的构建任务数量以及构建任务持续时间。您还可以访问 CloudWatch 控制台查看更详细的生成任务指标。要了解有关使用 CloudWatch 监控 CodeBuild 的更多信息,请访问我们的文档。
如何调试过去失败的构建任务?
您可以通过检查构建任务运行期间生成的详细日志来调试构建任务,也可以使用 CodeBuild Local 在本地测试和调试构建任务。
为什么 build.general1.small 不支持适用于 Windows 的 .NET Core 构建环境?
由于 Windows Docker 基本容器和其他库的大小,适用于 Windows 的 .NET Core 构建环境所需的内存和处理能力超出了 build.general1.small 计算实例类型的承受范围。基于这一限制,适用于 Windows 的 .NET Core 构建环境没有免费套餐。
如何接收 AWS CodeBuild 中各种事件的通知或警报?
您可以针对影响您部署的事件创建通知。通知将以 Amazon SNS 通知的形式出现。每个通知将包括状态消息以及指向其事件生成该通知的资源的链接。 通知没有额外成本;但您可能需要为通知使用的其他 AWS 服务付费,例如 Amazon SNS。要了解如何开始使用通知,请参阅通知用户指南。此外,使用 AWS Chatbot 的客户可以将通知配置为发送到其 Slack 通道或 Amazon Chime 聊天室。有关更多详情,请单击此处。
安全性
我可以加密 CodeBuild 存储的构建项目吗?
符合。您可以指定存储在 AWS Key Management Service (AWS KMS) 中的密钥,从而加密您的项目。
CodeBuild 如何隔离属于其他客户的构建任务?
CodeBuild 在与其他用户隔离的新环境中运行您的构建任务,并在完成后丢弃每个构建环境。CodeBuild 在基础设施和执行级别提供安全性和隔离。
我是否可以使用 AWS Identity and Access Management(IAM)管理对 CodeBuild 的访问?
符合。您可以通过 IAM 策略中的资源级权限控制对生成项目的访问。
区域
CodeBuild 支持哪些区域?
有关详细信息,请参阅区域性产品和服务。