Je souhaite ajouter des référentiels de code à mon instance Amazon SageMaker AI.
Résolution
SageMaker AI prend en charge l'intégration aux référentiels de code GitHub. Pour HTTPS, utilisez l'intégration de Git intégrée de SageMaker AI. Pour les référentiels SSH ou les serveurs Git internes auxquels vous accédez via un cloud privé virtuel (VPC), utilisez des configurations de cycle de vie.
Utiliser l'intégration de Git de SageMaker AI pour HTTPS
Ajoutez un référentiel Git à votre compte SageMaker AI.
Lorsque vous accédez à votre référentiel, utilisez le format suivant :
- URL de GitHub : https://github.com/workspace/repository.git
- URL de Bitbucket : https://bitbucket.org/workspace/repository.git
- URL de GitLab : https://gitlab.com/workspace/repository.git
SageMaker AI clone les référentiels vers /home/ec2-user/SageMaker/.
Utiliser des configurations de cycle de vie pour l'intégration de Git basée sur SSH
Procédez comme suit :
-
Stockez votre clé privée SSH dans AWS Secrets Manager.
-
Créez une configuration de cycle de vie.
-
Dans l'éditeur de notebook Start, saisissez le script suivant et personnalisez-le en fonction de votre serveur Git et de vos stratégies de sécurité :
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
-
Vérifiez que le rôle AWS Identity and Access Management (IAM) de l'instance de notebook dispose de la stratégie d'autorisations suivante pour accéder à Secrets Manager :
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "secretsmanager:GetSecretValue",
"Resource": "arn:aws:secretsmanager:region:account-id:secret:secret-name"
}
]
}
Informations connexes
Créer une instance de notebook Amazon SageMaker AI
Stratégies basées sur l'identité
Comment résoudre les problèmes liés à la connexion des référentiels Git aux instances de notebook SageMaker AI ?