Quiero agregar repositorios de código a mi instancia de Amazon SageMaker AI.
Resolución
SageMaker AI admite la integración con los repositorios de código de GitHub. Para HTTPS, utiliza la integración de Git integrada en SageMaker AI. Para los repositorios SSH o los servidores de Git internos a los que accedes a través de una nube virtual privada (VPC), usa configuraciones de ciclo de vida.
Uso de la integración de Git de SageMaker AI para HTTPS
Agrega un repositorio de Git a tu cuenta de SageMaker AI.
Cuando ingreses a tu repositorio, usa el siguiente formato:
- 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 clona los repositorios en /home/ec2-user/SageMaker/.
Uso de configuraciones de ciclo de vida para la integración de Git basada en SSH
Sigue estos pasos:
-
Almacena tu clave privada de SSH en AWS Secrets Manager.
-
Crea una configuración de ciclo de vida.
-
En el editor Iniciar cuaderno, introduce el siguiente script y personalízalo con tu servidor de Git y tus políticas de seguridad:
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
-
Comprueba que el rol de AWS Identity and Access Management (IAM) de la instancia del cuaderno tenga la siguiente política de permisos para acceder a Secrets Manager:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "secretsmanager:GetSecretValue",
"Resource": "arn:aws:secretsmanager:region:account-id:secret:secret-name"
}
]
}
Información relacionada
Creación de una instancia de cuaderno de Amazon SageMaker AI
Políticas basadas en identidad
¿Cómo puedo solucionar los problemas relacionados con los repositorios de Git a las instancias del cuaderno de SageMaker AI?