跳至内容

如何将代码存储库添加到我的 SageMaker 人工智能 Notebook 实例?

2 分钟阅读
0

我想向我的 Amazon SageMaker 人工智能实例添加代码存储库。

解决方法

SageMaker AI 支持与 GitHub 代码存储库集成。对于 HTTPS,请使用 SageMaker 人工智能内置的 Git 集成。对于您通过虚拟私有云 (VPC) 访问的 SSH 存储库或内部 Git 服务器,请使用生命周期配置。

将 SageMaker 人工智能 Git 集成用于 HTTPS

将 Git 存储库添加到您的 SageMaker 人工智能账户

当您进入存储库时,请使用以下格式:

  • GitHub 网址:https://github.com/workspace/repository.git
  • Bitbucket 网址:https://bitbucket.org/workspace/repository.git
  • GitLab 网址:https://gitlab.com/workspace/repository.git

SageMaker 人工智能将存储库克隆到 /home/ec2-user/SageMaker/

将生命周期配置用于基于 SSH 的 Git 集成

完成以下步骤:

  1. 将您的 SSH 私钥存储在 AWS Secrets Manager 中

  2. 创建生命周期配置

  3. Start notebook(启动 Notebook)编辑器中,输入以下脚本并使用您的 Git 服务器和安全策略对其进行自定义:

    bash
    #!/bin/bash
    python << EOF
    import boto3
    import base64
    
    
    secret_name = "your_secret_name"
    region_name = "your_region"
    
    
    session = boto3.session.Session()
    client = session.client(service_name='secretsmanager', region_name=region_name)
    get_secret_value_response = client.get_secret_value(SecretId=secret_name)
    
    
    if 'SecretString' in get_secret_value_response:
     secret = get_secret_value_response['SecretString']
     with open('/home/ec2-user/.ssh/id_rsa', 'wt') as tmp:
     tmp.write(secret)
    else:
     decoded_binary_secret = base64.b64decode(get_secret_value_response['SecretBinary'])
     with open('/home/ec2-user/.ssh/id_rsa', 'wt') as tmp:
     tmp.write(decoded_binary_secret)
    EOF
    
    
    echo "Host github.com " >> /home/ec2-user/.ssh/config
    echo " StrictHostKeyChecking no" >> /home/ec2-user/.ssh/config
    echo " IdentityFile /home/ec2-user/.ssh/id_rsa" >> /home/ec2-user/.ssh/config
    
    
    chmod 600 /home/ec2-user/.ssh/config
    chmod 600 /home/ec2-user/.ssh/id_rsa
    chown ec2-user:ec2-user /home/ec2-user/.ssh/config
    chown ec2-user:ec2-user /home/ec2-user/.ssh/id_rsa
    
    
    cd /home/ec2-user/SageMaker
    sudo su ec2-user -c "git clone git@github.com:myAccount/SageMakerNotebook.git"
    
    
    rm /home/ec2-user/.ssh/config
  4. 检查 Notebook 实例的 AWS Identity and Access Management (IAM) 角色是否具有以下访问 Secrets Manager 的权限策略:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "secretsmanager:GetSecretValue",
          "Resource": "arn:aws:secretsmanager:region:account-id:secret:secret-name"
        }
      ]
    }

相关信息

创建 Amazon SageMaker 人工智能 Notebook 实例

基于身份的策略

如何排查将 Git 存储库连接到 SageMaker 人工智能 Notebook 实例的相关问题?

AWS 官方已更新 1 年前