开始免费使用 AWS

创建免费账户

获得 12 个月的 AWS 免费套餐,同时享受 AWS 的基本支持功能,包括 24x7x365 客户服务、支持论坛及更多。
查看 AWS 免费套餐详细信息 »


问:什么是 AWS CodeCommit?
AWS CodeCommit 是一个安全、高度可扩展的托管型源代码控制服务,可用于托管私有 Git 存储库。使用 CodeCommit,您无需运作自己的源控制系统,也无需担心基础设施的扩展能力。您可以使用 AWS CodeCommit 将来自代码的任何数据存储为二进制文件,而且它可以无缝兼容您现有的 Git 工具。

问:什么是 Git?
Git 是一个开源分布式版本控制系统。要使用 AWS CodeCommit 存储库,您可以使用 Git 命令行界面 (CLI) 或任何可用的 Git 客户端。要了解有关 Git 的更多信息,请参阅 Git 文档。有关如何将 AWS CodeCommit 与 Git 结合使用的更多信息,请参阅 AWS CodeCommit 入门

问:哪些人应该使用 AWS CodeCommit?
AWS CodeCommit 专为需要安全、可靠且可扩展的源代码控制系统来存储和代码并进行版本化管理的软件开发人员设计。此外,AWS CodeCommit 适用于寻求版本受控、易于使用的完全托管型数据存储的任何用户。例如,IT 管理员可以使用 AWS CodeCommit 来存储他们的脚本和配置。Web 设计人员可以使用 AWS CodeCommit 来存储 HTML 页面和图像。

问:AWS CodeCommit 与其他基于 Git 的源代码控制系统有什么不同?
AWS CodeCommit 可提供其他 Git 源代码控制系统并不提供的多种功能:

  • 完全托管 – AWS CodeCommit 无需您托管、维护、备份和扩展自己的源代码控制服务器。
  • 安全 – AWS CodeCommit 在传输过程中和空闲时自动加密您的文件。AWS CodeCommit 可与 AWS Identity and Access Management (IAM) 集成,从而使您能够向存储库分配用户特定的权限。
  • 高度可用 – AWS CodeCommit 基于高度可扩展、冗余且耐用的 AWS 服务构建,如 Amazon S3 和 Amazon DynamoDB。
  • 可扩展 – AWS CodeCommit 可让您存储任意数量的文件,且没有任何存储库大小限制。
  • 更短的开发生命周期 – AWS CodeCommit 将您的存储库保存在位于 AWS 云中的您的构建、暂存和生产环境附近。这可以让您加快开发生命周期的速度和频率。

问:AWS CodeCommit 与版本化 S3 存储桶相比如何?
AWS CodeCommit 专门用于协作软件开发。它可用于管理多个文件之间的批量更改,提供并行分支机制,且包括版本差异对比(“比较”)。相比之下,Amazon S3 版本控制支持恢复各个文件的早期版本,但不支持跨多个文件的跟踪批次更改或协作软件开发所需的其他功能。

什么是 Git?Git 是一个开源分布式版本控制系统。要使用 AWS CodeCommit 存储库,您可以使用 Git 命令行界面 (CLI) 或任何可用的 Git 客户端。要了解有关 Git 的更多信息,请参阅 Git 文档。有关如何将 AWS CodeCommit 与 Git 结合使用的更多信息,请参阅 AWS CodeCommit 入门。

问:如何开始使用 AWS CodeCommit?
您可以登录 AWS Management Console,创建存储库并开始通过 Git 使用存储库。如果您需要初步了解该服务,请参阅入门,其中含有分步教程。

问:如何创建存储库?
您可以从 AWS Management Console 或通过使用 AWS Command Line Interface (AWS CLI)、AWS SDK 或 AWS CodeCommit API 创建存储库。

问:如何更新我的存储库中的文件?
您可以通过 Git 来使用存储库。例如,您可以使用 git clone 命令来制作 AWS CodeCommit 存储库的本地副本。更改本地文件,并在您要保存更改时使用 git commit 命令。最后,使用 git push 命令来将更改上传到 AWS CodeCommit 存储库。对于逐步说明,请参阅 AWS CodeCommit 入门

问:如何将我的现有存储库导入到 AWS CodeCommit中?
您可以使用 Git 来将任意现有 Git 存储库导入到 AWS CodeCommit中。对于其他存储库(例如 Subversion and Perforce),您可以使用 Git 导入程序将它先迁移到 Git 存储库中。有关如何导入 Git 存储库的逐步说明,请参阅将现有存储库迁移到 AWS CodeCommit。有关如何将其他存储库迁移到 Git 的更多信息,请参阅 Git 迁移文档

问:AWS CodeCommit 目前支持哪些 Git 操作?
AWS CodeCommit 目前支持 clone、pull、push 和 fetch 命令。

问:AWS CodeCommit 是否支持 Git 子模块?
支持。AWS CodeCommit 可以用于包括子模块的 Git 存储库。

问:使用 AWS CodeCommit 时有哪些服务限制?
有关服务限制的更多信息,请参阅限制

问:我可以存储在 CodeCommit 中的单个文件的最大容量是多少?
存储库中的单个文件的大小不能超过 2 GB。

问:如何备份我的存储库?
如果您具有来自执行完整的 git clone 的存储库的本地副本,您可以用它来恢复数据。如果您需要额外备份,则可以采用多种方法进行该操作。一种方法是在您的备份服务器上安装 Git,然后运行使用 git clone 命令的计划作业来定期为您的存储库创建快照。如果您希望仅复制增量更改,则可以使用 git pull 而非 git clone。请注意,根据您设置备份服务器和轮询频率的方式,这些操作可能会产生额外的用户和/或请求收费。

问:如何恢复已删除的 AWS CodeCommit 存储库?
删除 AWS CodeCommit 存储库是破坏性的单向操作,无法撤消。 要恢复已删除的存储库,您将需要重新创建存储库,并使用来自完整克隆的备份或本地副本来上传数据。我们建议使用 IAM 策略以及 MFA 保护来限制可以删除存储库的用户。有关更多信息,请参阅常见问题的安全性部分中的“是否可以使用 AWS Identity and Access Management (IAM) 来管理 AWS CodeCommit 的访问权限?”问题。

问:如何通过 AWS CodeCommit 管理代码审查?
对于代码审查,您可以使用任何兼容 Git 的代码审查系统,如 Review Board

问:如何将我的持续集成系统与 AWS CodeCommit 集成?
持续集成 (CI) 系统可以配置为使用 GIT 来从 AWS CodeCommit 拉取代码。有关将 CI 系统与 AWS CodeCommit 配合使用的示例,请参阅我们关于将 AWS CodeCommit 与 Jenkins 集成的博客文章

问:如何使用 AWS CodeCommit 创建 Webhook?
在 Amazon Simple Notification Service (SNS) 控制台中,您可以使用 HTTP 终端节点和 Webhook 所需的 URL 创建 SNS 主题。然后,您可以在 AWS CodeCommit 控制台中将 SNS 主题配置到使用触发器的存储库事件。

问:能否出于安全分析和排除运营故障的目的,获取一份从我的账户发起的 AWS CodeCommit Git 操作和 API 调用的历史记录?
可以。要获取从您的账户发起的 CodeCommit Git 操作和 API 调用的历史记录,您只需在 AWS 管理控制台中打开 AWS CloudTrail 即可。目前尚不支持记录 Git 推送中的各项提交内容。有关更多信息,请参阅 CloudTrail 用户指南

问:是否可以使用 AWS Identity and Access Management (IAM) 来管理 AWS CodeCommit 的访问权限?
可以。AWS CodeCommit 支持资源级权限。对于每个 AWS CodeCommit 存储库,您可以指定哪些用户可以执行哪些操作。您还可以指定 CodeCommit 操作的 AWS 多因素验证 (MFA)。这可让您对破坏性操作(如删除存储库)添加额外的保护级别。除 AWS CodeCommit API 外,您还可以将 git pull 和 git push 指定为控制 Git 客户端访问的操作。例如,通过允许用户访问存储库上的 git pull 而非 git push 您可以为存储库创建只读用户。有关将 IAM 用于 AWS CodeCommit 的更多信息,请参阅访问权限参考。有关使用 IAM 验证 API 访问的更多信息,请参阅配置受 MFA 保护的 API 访问

问:AWS CodeCommit 支持哪些通信协议?
您可以使用 HTTPS 或 SSH 协议或同时使用这两者来与 AWS CodeCommit 通信。要使用 HTTPS,请先安装 AWS CLI。AWS CLI 会安装可以使用 AWS 凭证进行配置的 Git 凭证帮助程序。它会使用签名版本签名规范自动签署指向 AWS CodeCommit 的所有 HTTPS 请求。要使用 SSH,用户可以创建自己的公钥和私钥对并将他们的公共密钥添加到他们的 IAM 用户项下。私钥会用于加密与 AWS CodeCommit 的通信。对于如何设置 HTTPS 和 SSH 访问的逐步说明,请参阅设置 AWS CodeCommit 页面。

问:要访问 AWS CodeCommit 我应该在防火墙中打开哪些端口?
您将不得不在端口 22 (SSH) 或端口 443 (HTTPS) 上打开 AWS CodeCommit 服务端点的出站访问。

问:如何在 AWS CodeCommit 中加密我的存储库?
存储库会在休息时自动加密。无需客户操作。AWS CodeCommit 使用AWS 密钥管理服务(KMS)来加密存储库。当您创建第一个存储库时,您的 AWS 帐户下会创建一个 AWS 托管型 CodeCommit 秘钥。有关详细信息,请参阅 AWS CodeCommit 存储库加密

问:能否对我的存储库启用跨帐户访问?
可以。您可以在您的 AWS 帐户中创建 IAM 角色来向其他 AWS 帐户中的 IAM 用户委派对存储库的访问权限。然后,IAM 用户可以在运行命令时配置自己的 AWS CLI 来使用AWS 安全令牌服务 (STS) 并担任该角色。有关详细信息,请参阅 AWS CLI 文档中的担任角色

问:AWS CodeCommit 支持哪些区域?
请参阅区域性产品和服务,了解 CodeCommit 在不同区域的具体提供情况。

问:AWS CodeCommit 的费用是多少?
AWS CodeCommit 对每个活动用户每月收取1 USD 的费用。 对于每个活动用户,您的帐户每月将收到 10 GB 每月的存储容量以及2000 个 Git 请求。未使用的存储和 Git 请求限额不转入下一个月。如果您的用户需要更多存储或 Git 请求,则额外的存储将按每月每 GB 0.06 USD 收费,每个 Git 请求收取 0.001 USD 的费用。用户的 Git 存储库的存储容量没有限制。使用量每月计算一次(所有地区)并自动应用到账单中。有关其他详细信息,请参阅定价页面。

问:AWS CodeCommit 中的活动用户的定义是什么?
活动用户是通过 Git 请求或 AWS 管理控制台在该月内访问 AWS CodeCommit 存储库的任意唯一 AWS 身份(IAM 用户/角色、联合用户或根账户)。使用独有的 AWS 身份访问 CodeCommit 的服务器可以算作活动用户。

问:哪些 Git 请求会被计入每月限额?
Git 请求包括传输存储库对象的任何推送或拉取。如果由于本地和远程分支为最新而没有对象传输,则该请求不计入您的 Git 请求限额。