Desidero aggiungere repository di codice alla mia istanza Amazon SageMaker AI.
Risoluzione
SageMaker AI supporta l'integrazione con repository di codice GitHub. Per HTTPS, utilizza l'integrazione Git incorporata in SageMaker AI. Per repository SSH o server Git interni a cui accedi tramite un cloud privato virtuale (VPC), utilizza le configurazioni del ciclo di vita.
Utilizza l'integrazione Git di SageMaker AI per HTTPS
Aggiungi un repository Git all'account SageMaker AI.
Quando inserisci il repository, utilizza il seguente formato:
- URL GitHub: https://github.com/workspace/repository.git
- URL Bitbucket: https://bitbucket.org/workspace/repository.git
- URL GitLab: https://gitlab.com/workspace/repository.git
SageMaker AI clona i repository in /home/ec2-user/SageMaker/.
Utilizza le configurazioni del ciclo di vita per un'integrazione Git basata su SSH
Completa i seguenti passaggi:
-
Archivia la tua chiave privata SSH in AWS Secrets Manager.
-
Crea una configurazione del ciclo di vita.
-
Nell'editor Avvia notebook, inserisci il seguente script e personalizzalo con il server Git e le policy di sicurezza:
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
-
Verifica che il ruolo AWS Identity and Access Management (AWS IAM) dell'istanza del notebook abbia la seguente policy di autorizzazione per accedere a Secrets Manager:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "secretsmanager:GetSecretValue",
"Resource": "arn:aws:secretsmanager:region:account-id:secret:secret-name"
}
]
}
Informazioni correlate
Crea un'istanza del notebook Amazon SageMaker AI
Policy basate sull'identità
Come posso risolvere i problemi associati alla connessione dei repository Git alle istanze del notebook Amazon SageMaker?