一、什么是 AWS CodeCommit
AWS CodeCommit 是由 Amazon Web Services 托管的版本控制服务,可让您在云中私密地存储和管理资产(如文档、源代码和二进制文件)。可以理解为GitLab、Gitee等Git代码仓库同类产品。
CodeCommit 是一项安全的、可高度扩展的托管型源代码控制服务,可用于托管私有 Git 存储库。CodeCommit 使您无需管理自己的源代码控制系统,并且再也不必担心基础设施的扩展了。您可以使用 CodeCommit 存储从代码到二进制文件的一切内容。它支持 Git 的标准功能,可与您现有的基于 Git 的工具无缝协作。
通过使用 CodeCommit,您可以(吹牛的部分):
-
受益于由 AWS... CodeCommit 提供高服务可用性和耐用性,并且消除管理自己的硬件和软件的管理开销。没有需要预置和扩展的硬件,也没有需要安装、配置和更新的服务器软件。
-
安全存储您的代码... CodeCommit 存储库在静态内以及运输途中加密。
-
在代码上协同工作。 CodeCommit 存储库支持拉取请求,用户可以在将其合并到分支机构之前审核和评论对方的代码更改;通知自动发送电子邮件至用户关于拉动请求和备注的电子邮件;以及更多。
-
轻松扩展您的版本控制项目... CodeCommit 资料库可以扩展以满足您的发展需求。该服务能够处理具有大量文件或分支、大尺寸文件及冗长版本历史记录的存储库。
-
随时随地存储任何内容... CodeCommit 对您的存储库大小或您可以存储的文件类型没有限制。
-
与其他 AWS 和第三方服务... CodeCommit 保持您的存储库接近其他生产资源 AWS 云,有助于增加开发生命周期的速度和频率。它与 IAM 可与其他 AWS 服务并与其他存储库并行。有关更多信息,请参阅 产品和服务集成AWS CodeCommit.
-
轻松地从远程存储库迁移文件。. 您可以迁移到 CodeCommit 从基于GIT的存储库。
-
使用您已知的GIT工具... CodeCommit 支持GIT命令以及自己的 AWS CLI 命令和API。
二、使用存储库
2.1 创建 AWS CodeCommit 存储库(控制台方式)
-
通过以下网址打开 CodeCommit 控制台:https://console.www.amazonaws.cn/codesuite/codecommit/home。
-
在区域选择器中,选择要创建存储库的 AWS 区域,我们选择的是
北京
区。Region选择
有关更多信息,请参阅 区域和GIT连接端点. -
在 存储库(Repository) 页面,选择 创建存储库。
-
在 创建存储库 页面, 存储库名称,输入存储库的名称。
注意:存储库名称区分大小写。名称必须唯一。
- (可选) 描述,输入存储库的说明。这可以帮助您及其他用户了解存储库的用途。
注意:描述字段在控制台中显示 Markdown 并接受所有 HTML 字符和有效的 Unicode 字符。如果您是使用
GetRepository
或BatchGetRepositories
API 的应用程序开发人员,并计划在 Web 浏览器中显示存储库描述字段,请参阅 CodeCommit API 参考。
-
(可选)选择 添加标签 添加一个或多个存储库标签(一个自定义属性标签,帮助您组织和管理 AWS 资源)。有关更多信息,请参阅 标记存储库 AWS CodeCommit.
-
(可选)选择 启用 Amazon CodeGuru Reviewer 对于Java 如果此存储库 包含s Java代码,您需要 CodeGuru Reviewer 分析 它... CodeGuru Reviewer 使用多个机器学习模型查找Java代码缺陷和 提示在拉动请求中进行改进和修复。有关更多信息,请参阅 。Amazon CodeGuru Reviewer 用户指南.
-
选择 创建.
创建存储库后,您可以通过 CodeCommit 控制台开始添加代码或本地GIT客户端,或通过最喜欢的IDE集成 CodeCommit 操作存储库。
创建后的存储库如图:![](https://img.haomeiwen.com/i23166491/c43a9af654f07ae4.png)
2.2 CLI方式创建存储库
略....
三、使用GIT凭据的HTTPS用户设置
连接AWS CodeCommit 存储库的最简单方法是:配置GIT凭据 CodeCommit 在 IAM 控制台,然后使用HTTPS连接的这些凭据。您还可以将这些凭证用于支持使用静态用户名和密码进行 HTTPS 身份验证的任何第三方工具或集成开发环境 (IDE)。
3.1 初始配置 CodeCommit
按照以下步骤设置 AWS 帐户,创建 IAM 并配置访问 CodeCommit.
创建并配置 IAM userforaccessing CodeCommit
-
创建 AWS 客户进入 http://www.amazonaws.cn 并选择 注册.
-
创建 IAM 用户或使用现有的 AWS 账户。确保您具有与该 IAM 用户关联的访问密钥 ID 和私有访问密钥。有关详细信息,请参阅 创建 IAM 用户在您的 AWS 账户.
注意: CodeCommit 需要 AWS Key Management Service. 如果您正在使用现有 IAM 用户,确保没有明确拒绝该用户的策略 AWS KMS 要求的操作 CodeCommit. 有关更多信息,请参阅 AWS KMS 和加密.
-
登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/。
-
在 IAM 控制台,在导航窗格中,选择 用户,然后选择 IAM 要配置的用户 CodeCommit 访问。
-
在 权限 选项卡,选择 添加权限.
-
在 授权权限,选择 直接附加现有政策.
-
从策略列表中,选择 AWSCodeCommitPowerUser 或其他管理政策 CodeCommit 访问。有关更多信息,请参阅 适用于 的 AWS 托管(预定义)策略CodeCommit.
选择要附加的策略后,选择 下一步: 审核 要查看附加到 IAM 用户。如果列表正确,请选择 添加权限.
有关 CodeCommit 托管策略和与其他组和用户共享存储库的访问权限,请参阅 共享存储库 和 的身份验证和访问控制AWS CodeCommit.
用户配置信息
如果您想使用 AWS CLI 命令 CodeCommit,安装 AWS CLI. 有关更多信息,请参阅 命令行参考.
3.2 为HTTPS连接创建GIT凭据 CodeCommit
在安装GIT后,请为您的 IAM 用户 IAM. 有关详细信息,请参阅 使用GIT凭据和HTTPS AWS CodeCommit 在 IAM 用户指南.
为 设置 HTTPS Git 凭证CodeCommit
-
登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/。
确保登录 IAM 将创建并使用GIT凭据的用户以进行连接 CodeCommit.
-
在 IAM 控制台,在导航窗格中,选择 用户,从用户列表中选择您的 IAM 用户。
注意: 您可以直接查看和管理 CodeCommit 凭据 MySecurityCredentials. 有关更多信息,请参阅 查看和管理您的凭据.
- 在用户详情页面上,选择 安全凭据 选项卡,在 HTTPS Git credentials for AWS CodeCommit区域,选择 生成.
注意: 您无法为 Git 凭证选择自己的用户名或密码。有关详细信息,请参阅 使用GIT凭据和HTTPS CodeCommit.
-
复制用户名和密码 IAM 通过显示、复制并在本地计算机上的安全文件中粘贴此信息或选择 下载凭据 将此信息下载为.csv文件。您需要该信息才能连接到 CodeCommit.
保存完凭证后,点击 关闭。
重要: 这是您保存该用户名和密码的唯一机会。如果您未保存它们,可以从 IAM 控制台复制用户名,但无法查找密码。此时,您必须重置密码,然后保存它。
四、使用GIT凭据设置开发工具的连接
在 AWS CodeCommit 的 IAM 控制台您已经配置GIT凭据的情况下,您可以使用支持GIT凭据的任何开发工具中使用这些凭据。例如,您可以配置AWS Cloud9、VisualStudio、Eclipse、XCode、IntelliJ或集成了GIT凭据的任何集成开发环境(IDE)访问 CodeCommit 存储库 。配置访问后,您可以编辑代码、提交更改并从 IDE 或其他开发工具直接推送。
这里以IDEA为例使用CodeCommit。
4.1 首先将代码纳入本地Git管理
![](https://img.haomeiwen.com/i23166491/961c72056dfa59e8.png)
4.2 配置远程的Git仓库
获取CodeCommit的连接信息
-
通过以下网址打开 CodeCommit 控制台
https://console.www.amazonaws.cn/codesuite/codecommit/home。 -
在区域选择器中,选择已创建存储库的 AWS 区域。存储库特定于 AWS 区域。有关更多信息,请参阅 区域和GIT连接端点.
-
在 存储库 页面,选择要共享的存储库。
-
在 克隆URL,选择希望用户使用的协议。这会复制连接协议的克隆 URL。
-
向您的用户发送克隆 URL 以及任何其他说明,如安装 AWS CLI、对配置文件进行配置或安装 Git 的说明。请确保包含连接协议(例如 HTTPS)的配置信息。
-
IDEA配置远程仓库
如果是从仓库clone代码使用如下菜单
Get from Version Control...
![](https://img.haomeiwen.com/i23166491/b7d740090b58575d.png)
如果是第一次提交代码到仓库,见如下步骤
在项目的右键选择"Git->Repository->Remotes
",如下图:
![](https://img.haomeiwen.com/i23166491/2a67746d7f035830.png)
新增远端Git定义,URL为上面复制出来的 克隆URL:
![](https://img.haomeiwen.com/i23166491/b0ab02aea6293262.png)
点击确定后,提示输入用户名、密码,为IAM中复制出来或者excel导出的用户名密码。也有可能 弹出的是Windows的输入用户名密码提示。
![](https://img.haomeiwen.com/i23166491/317bcace034dcc6a.png)
然后就可以通过IDEA像使用其他Git仓库一样使用CodeCommit进行Push和Pull代码了。
在CodeCommit中查看提交后的代码:
![](https://img.haomeiwen.com/i23166491/e71f94d4e470ae76.png)
五、使用命令行进行clone
5.1 测试文件
这个仓库里面有一个测试文件[codecommit_test.txt]
:
![](https://img.haomeiwen.com/i23166491/f4e18d84fe832a91.png)
5.2 克隆命令行
Open a terminal, command line, or Git shell. Run the git clone command with the HTTPS clone URL you copied to clone the repository. For example, to clone a repository named NPay_Payment_Gateway
to a local repo named NPay_repo
in the eu-south-1 Region。
打开windows的命令行窗口执行以下clone命令:
d:\dev>git clone https://git-codecommit.eu-south-1.amazonaws.com/v1/repos/NPay_Payment_Gateway NPay_repo
5.3 用户认证
会提示输入codecommit的用户名和密码进行连接,使用上面的 3.2 为HTTPS连接创建GIT凭据 CodeCommit 部分生成的用户名密码即可。
![](https://img.haomeiwen.com/i23166491/ab77115e079cf403.png)
5.4 执行clone命令
d:\dev>git clone https://git-codecommit.eu-south-1.amazonaws.com/v1/repos/NPay_Payment_Gateway NPay_repo
Cloning into 'NPay_repo'...
remote: Counting objects: 3, done.
Unpacking objects: 100% (3/3), 221 bytes | 27.00 KiB/s, done.
d:\dev>
提示done
。
5.5 验证
查看对应的文件夹NPay_repo
:
![](https://img.haomeiwen.com/i23166491/0cc39ce5828b734f.png)
文件内容也正确无误:
![](https://img.haomeiwen.com/i23166491/e66b4611daa26b8a.png)
5.6 使用IDEA导入clone的项目
通过菜单File-->New-->Projectt from Existing Sources
进行导入:
![](https://img.haomeiwen.com/i23166491/72885ab417ab0fe9.png)
我的maven配置文件不是默认的
settings.xml
,新项目不要忘了指定的maven配置文件,否则重新下载依赖要很长时间。![](https://img.haomeiwen.com/i23166491/cdd242fa9bff0fbc.png)
修改项目的JDK编译版本:
![](https://img.haomeiwen.com/i23166491/45518877de2bdf23.png)
![](https://img.haomeiwen.com/i23166491/15e0930acd6c75c8.png)
![](https://img.haomeiwen.com/i23166491/1502b938580d0c9d.png)
最后更新maven依赖。
![](https://img.haomeiwen.com/i23166491/6cb53fd3e31a32b0.png)
网友评论