一般性问题

问:什么是 AWS CodeCommit?

AWS CodeCommit 是一项安全、高度可扩展的托管型源代码控制服务,可帮助团队更轻松地协作处理代码。使用 AWS 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 版本控制支持恢复各个文件的早期版本,但不支持跨多个文件跟踪批量更改或协作软件开发所需的其他功能。

使用 AWS CodeCommit

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

您可以从 AWS 管理控制台或通过使用 AWS 命令行界面 (AWS CLI)、 AWS 开发工具包 或 AWS CodeCommit API 创建存储库。
问:如何更新我的存储库中的文件?

您可以直接通过 CodeCommit 控制台编辑文件,也可以将 Git 与存储库结合使用。例如 Git 命令,您可以使用 git clone 命令来制作 AWS CodeCommit 存储库的本地副本。更改本地文件,并在您要保存更改时使用 git commit 命令。最后,使用 git push 命令来将更改上传到 AWS CodeCommit 存储库。如需分步说明,请参阅 AWS CodeCommit 入门
问:如何将我的现有存储库导入到 AWS CodeCommit 中?

您可以使用 Git 来将任意现有 Git 存储库导入到 AWS CodeCommit 中。对于其他存储库(例如 Subversion 和 Perforce),您可以使用 Git 导入程序将它先迁移到 Git 存储库中。有关导入 Git 存储库的分步说明,请参阅 将现有存储库迁移到 AWS CodeCommit。 如需导入本地或非版本控制内容的分步说明,请参阅 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 管理代码审核?

CodeCommit 支持代码审核,而且允许您为代码分支设置权限。请参阅我们的文档,获取代码审核或分支级权限方面的帮助。

问:如何将我的持续集成系统与 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 调用的历史记录?

可以。您可以在 AWS CloudTrail 控制台中查看近期的 CodeCommit 事件,包括 Git 操作和 API 调用。如需事件的持续记录,您可以在 Amazon S3 存储桶中创建跟踪和记录事件。有关更多信息,请参阅通过 AWS CloudTrail 记录 AWS CodeCommit API 调用。

安全性

问:是否可以使用 AWS Identity and Access Management (IAM) 来管理 AWS CodeCommit 的访问权限?

可以。AWS CodeCommit 支持 资源级权限。对于每个 AWS CodeCommit 存储库,您可以指定哪些用户可以执行哪些操作。您还可以指定 CodeCommit 操作的 AWS multi-factor authentication (MFA)。这可让您对破坏性操作(如删除存储库)添加一层额外保护。除 AWS CodeCommit API 外,您还可以将 git pull 和 git push 指定为控制 Git 客户端访问的操作。例如,通过允许用户访问存储库上的 git pull(而非 git push),您可以为存储库创建只读用户。有关将 IAM 与 AWS CodeCommit 结合使用的更多信息,请参阅 AWS CodeCommit 的身份验证和访问控制。有关使用 MFA 验证 API 访问的更多信息,请参阅 配置受 MFA 保护的 API 访问
问:AWS CodeCommit 支持哪些通信协议?

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

您必须在端口 22 (SSH) 或端口 443 (HTTPS) 上打开 AWS CodeCommit 服务终端节点的出站访问。
问:如何在 AWS CodeCommit 中加密我的存储库?

存储库会在休息时自动加密。无需客户操作。AWS CodeCommit 使用 AWS Key Management Service (KMS) 来加密存储库。当您创建第一个存储库时,您的 AWS 账户下会创建一个 AWS 托管型 CodeCommit 密钥。有关详细信息,请参阅 AWS CodeCommit 存储库加密
问:能否为我的存储库启用跨账户访问?

可以。您可以在您的 AWS 账户中创建 IAM 角色来向其他 AWS 账户中的 IAM 用户分配对存储库的访问权限。然后,IAM 用户可以在运行命令时配置自己的 AWS CLI 来使用 AWS Security Token Service (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 请求限额。

了解有关 AWS CodeCommit 定价的更多信息

访问定价页面
准备好开始构建了?
开始使用 AWS CodeCommit
还有更多问题?
联系我们