AWS CodeCommit - Runbook 与参考¶
English · GitHub source 事实核对时间(对照 AWS 官方文档):2026-08-19
概述¶
AWS CodeCommit 是托管版本控制服务,在云中托管私有 Git 仓库。它支持完整的 Git 工作流(clone、branch、commit、push、pull、pull request),通过 IAM 控制访问,静态和传输数据加密,并且可扩展到大型仓库,仓库大小和文件类型没有限制。
核心概念¶
- 仓库(Repository):由 AWS 托管的私有 Git 仓库;通过控制台或 CLI 创建,可用 HTTPS 或 SSH 克隆/推送(SSH 使用密钥,HTTPS 使用 Git 凭证)。
- Git 操作:CodeCommit 兼容 Git,现有 Git 工具和工作流无需改动即可使用。
- Pull request:合并前审查和评论代码变更;CodeCommit 可通过邮件/SNS 通知审查人。
- 分支与标签:标准 Git 引用;及时清理不再需要的分支/标签以保持操作高效。
- 加密:仓库静态加密(KMS)且传输加密(TLS)。
- 集成:与 CodeBuild、CodePipeline、Lambda(触发器)及第三方工具集成。
常用操作(AWS CLI)¶
# 创建仓库
aws codecommit create-repository --repository-name my-app --region us-east-1
# 克隆并操作
git clone https://git-codecommit.us-east-1.amazonaws.com/v1/repos/my-app
git add . && git commit -m "initial commit" && git push
# 创建分支和 pull request
aws codecommit create-branch --repository-name my-app \
--branch-name feature/x --commit-id <commit-id>
aws codecommit create-pull-request --title "Add feature" \
--targets repositoryName=my-app,sourceReference=feature/x,destinationReference=main
# 列出仓库和分支
aws codecommit list-repositories
aws codecommit list-branches --repository-name my-app
最佳实践¶
- 使用 IAM 角色或临时凭证;优先短时凭证而不是长期 Git 凭证。
- 策略要求时使用你控制的 KMS 密钥启用仓库加密。
- 仓库只放代码;数据库、备份或频繁变化的大二进制文件用 S3 存放。
- 生产分支使用带审查人的 pull request,并用 IAM 策略/审批规则保护。
- 配置通知(SNS)接收 PR 和推送事件;用 CloudTrail 监控仓库活动。
- 清理过期分支和标签;大文件资产使用 S3 等替代方案。
故障排查¶
| 症状 | 检查与处理 |
|---|---|
| 克隆/推送认证失败 | 检查 Git 凭证或 SSH 密钥配置,以及该仓库的 IAM 权限。 |
| 仓库不可见 | 确认区域,以及 IAM 主体是否有 codecommit:ListRepositories/GetRepository。 |
| 大文件操作变慢 | 大二进制文件移到 S3;频繁变化的大文件会使 Git 增量链性能下降。 |
| Pull request 通知缺失 | 核对 SNS 主题订阅和通知规则。 |
| 推送被拒绝 | 检查分支保护/审批规则以及分支上的 IAM 条件。 |
配额¶
每账户仓库数、仓库大小、文件大小和 API 请求速率有限制。以 AWS CodeCommit 配额页面和 Service Quotas 控制台为准。