跳至內容

如何將程式碼儲存庫新增到我的 SageMaker AI 筆記本執行個體?

2 分的閱讀內容
0

我想將程式碼儲存庫新增到 Amazon SageMaker AI 執行個體。

解決方法

SageMaker AI 支援與 GitHub 程式碼儲存庫整合。如果是 HTTPS,請使用 SageMaker AI 內建的 Git 整合。如果是透過虛擬私有雲端 (VPC) 存取的 SSH 儲存庫或內部 Git 伺服器,請使用生命週期組態。

使用 SageMaker AI Git 整合實作 HTTPS

將 Git 儲存庫新增至您的 SageMaker AI 帳戶

輸入儲存庫時,請使用以下格式:

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

SageMaker AI 會將儲存庫複製到 /home/ec2-user/SageMaker/

使用生命週期組態進行以 SSH 為基礎的 Git 整合

請完成下列步驟:

  1. 將您的 SSH 私有金鑰儲存在 AWS Secrets Manager 中

  2. 建立生命週期組態

  3. Start 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. 檢查筆記本執行個體的 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 AI 筆記本執行個體

身分型政策

如何對將 Git 儲存庫連線至 SageMaker AI 筆記本執行個體的相關問題進行疑難排解?

AWS 官方已更新 7 個月前