【问题标题】:Connecting Amazon Sagemaker Notebook Instance to Specific S3 Bucket and specific subdirectory in Git Remote Repository将 Amazon Sagemaker Notebook 实例连接到 Git 远程存储库中的特定 S3 存储桶和特定子目录
【发布时间】:2021-10-03 22:47:12
【问题描述】:

这是一个非常棘手的问题。

我是 Amazon Sagemaker 的新手,我似乎找不到任何解决此问题的方法。我什至不知道我想做的事情是否可能。

基本上,假设我在 Amazon Sagemaker 上有一个笔记本实例,我想将此笔记本实例自动连接到:

  • 特定的 S3 存储桶(甚至是 S3 存储桶内的特定子目录)
  • 远程 Git 存储库中的特定子目录 (托管在 GitHub/BitBucket/其他平台上)

这必须在每次启动笔记本实例时自动完成。这样的事情可能吗?

我尝试查看生命周期配置,但由于我不完全了解它的功能,我不知道是否可以使用生命周期配置 bash 脚本来执行此操作。

如果有人知道如何做类似的事情,我非常愿意接受其他想法,即使这意味着我必须修改 AWS CLI/Sagemaker SDK/API/GitHub 和 BitBucket API,其他 AWS 服务,如 lambda,等等

提前致谢!

【问题讨论】:

    标签: git amazon-web-services amazon-s3 lifecycle amazon-sagemaker


    【解决方案1】:

    不完全确定将特定 S3 存储桶“连接”到 Notebook 实例是什么意思,但假设您希望将内容下载到实例的底层 EBS 卷。对于 git,我的假设是您想从存储库中克隆一个特定的子文件夹。

    如您所述,要自动执行所有这些操作,您可以使用生命周期配置脚本。对于 S3,您可以从 LCC 脚本调用 AWS CLI 来下载特定对象或整个存储桶/前缀(对于多个文件,请使用 aws s3 sync 命令)。这里唯一需要注意的是,您为笔记本实例设置的执行角色必须具有对这些 S3 对象的读取权限。此角色确定您可以从笔记本实例访问的内容(而不是为您的 IAM 用户设置的策略)。

    对于 git 存储库克隆,您只需从 LCC 脚本中调用 git 命令即可。很长一段时间以来,无法仅从存储库中克隆一个子文件夹,但最终有一个解决方案,请参阅以下帖子: How do I clone a subdirectory only of a Git repository?

    【讨论】:

    • 伙伴,天哪,非常感谢!对对对,所以可以做这些事情。是的,您的假设是绝对正确的,我想要将 S3 存储桶的内容下载到我的实例的 EBS 卷或将 git 存储库克隆到我的笔记本实例的 EBS 卷。 .... 但是需要 SSH 密钥的私有 git 存储库呢?如果我们可以指定用于在 LCC 中保存训练/验证数据的 S3 存储桶,那也很棒,但我不知道这是否可能。谢谢大家!
    猜你喜欢
    • 1970-01-01
    • 2021-10-09
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 1970-01-01
    • 2021-10-23
    相关资源
    最近更新 更多