亚马逊AWS官方博客
使用AWS CodeCommit 管理 Amazon SageMaker 代码
SageMaker Studio 提供了一个基于 Web 的单一可视化界面,您可以在其中执行准备数据以及构建、训练和部署模型所需的所有 ML 开发步骤。将 Amazon SageMaker Studio 代码存储在 AWS CodeCommit 存储库中,您可以将它们作为独立文档保存以备将来重用。
继续阅读以了解在 CodeCommit 上配置基于 git 的存储库以管理使用 SageMaker 开发的 ML 代码的步骤。
解决方案架构
在 CodeCommit 中创建代码存储库
- 登录 AWS 管理控制台并打开 CodeCommit 控制台。
- 在左侧清单中选择Repositories。
- 要创建 CodeCommit 存储库,请选择创Create repository。
- 对于存储库名称,输入 MLRepo。
- 在存储库面板上,选择Clone URL,然后选择Clone HTTPS并临时保存 URL。
为 SageMaker 创建 AWS Identity and Access Management (IAM) 角色
创建 IAM 策略:
1. 打开 IAM 控制台。
2. 在左侧选项中选择 Policies,然后选择 Create policy。
3. 选择 JSON 选项卡并复制粘贴下面的 JSON,将 <<Region>> 和 <<AccountId>> 替换为您自己的。
4. 选择 Next:Tags,然后选择 Next:Review。
5. 对于名称,输入 MLRepoPolicy 并选择创建策略。
创建 IAM 角色:
1.在左侧单中选择Roles,然后选择创Create Role。
2.在 AWS Services可信实体类型下,选择 SageMaker,然后选择Next: Permissions。
3. 选择 Next 两次以接受默认权限和标签。在角色名称中输入 SageMakerRepoRole,然后选择Create Role。您已创建角色。
4. 现在,在绿色确认消息上选择 SageMakerRepoRole。
5. 选择附加策略并在搜索栏中输入 MLRepoPolicy。选择 MLRepoPolicy 旁边的复选框,然后选择附加策略。
6. 在权限选项卡下,确保将 MLRepoPolicy 内联策略附加到角色。
设置 SageMaker Studio
对于用User name,输入您选择的用户名。
对于Execution Role,选择之前创建的 SageMakerRepoRole。
- 在 Studio Control Panel上,选择用户名旁边的 Open Studio。
- 等待 Studio 加载。
- 在 Studio 的左侧边栏中,选择 Git 图标,然后选择Clone a Repository。
- 对于 URI,输入您之前创建的 CodeCommit 存储库的 HTTPS URL,然后选择Clone。
- 在左侧边栏中,选择文件浏览器图标。您将找到一个文件夹,其中克隆了您的存储库 MLRepo。
在 SageMaker Studio 上使用 CodeCommit 存储库(使用 Git UI)
- 在文件浏览器中,打开 MLRepo 文件夹(或双击)。
- 从选项中选择File、New、Notebook。
- 对于选择Kernel,选择 Python 3(Data Science)。
- 在笔记本的第一个单元格中输入一些 Python 代码。
print('This is the beginning of an incredible ML project')
- 在笔记本中,选择Save notebook and create checkpoint。
- 在左侧边栏中,选择 Git 图标。
要追踪和提交所有文件:
- 在 Git 面板中,在 Untracked 旁边,选择 +。
未追踪的文件现在被移动到 Staged 面板中。
- 输入摘要和描述,然后选择Commit以提交您的更改。
要将更改推送到存储库:
- 在 Git 面板中,选择 Push 图标
在 SageMaker Studio 上使用 CodeCommit 存储库(使用 Git CLI)
您还可以在 Studio 上使用 Git 命令行界面 (CLI)。以下示例演示了 Git CLI 的使用:
1. 在笔记本选项中,选择 + 图标以添加新单元格。
2. 在笔记本单元格中,输入以下代码:
3. 在笔记本菜单中,选择保存笔记本并创建检查点图标。
4. 在 Studio 中的 Git 选项上,选择Open Git Repository in Terminal
- 在终端中,执行以下 Git 命令以暂存更改、创建新提交并Commit更改: