Quero adicionar repositórios de código à minha instância do Amazon SageMaker IA.
Resolução
O SageMaker IA oferece suporte à integração com repositórios de código do GitHub. Para HTTPS, use a integração Git integrada do SageMaker IA. Para repositórios SSH ou servidores Git internos que você acessa por meio de uma nuvem privada virtual (VPC), use configurações de ciclo de vida.
Usar a integração do SageMaker IA Git para HTTPS
Adicione um repositório Git à sua conta do SageMaker IA.
Ao inserir seu repositório, use o seguinte formato:
- URL do GitHub: https://github.com/workspace/repository.git
- URL do Bitbucket: https://bitbucket.org/workspace/repository.git
- URL do GitLab: https://gitlab.com/workspace/repository.git
O SageMaker IA clona os repositórios em /home/ec2-user/SageMaker/.
Usar configurações de ciclo de vida para integração com Git baseada em SSH
Conclua as etapas a seguir:
-
Armazene sua chave privada SSH no AWS Secrets Manager.
-
Crie uma configuração de ciclo de vida.
-
No editor Iniciar caderno, insira o script a seguir e personalize-o com seu servidor Git e suas políticas de segurança:
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
-
Verifique se o perfil do AWS Identity and Access Management (AWS IAM) da instância de caderno tem a seguinte política de permissões para acessar o Secrets Manager:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "secretsmanager:GetSecretValue",
"Resource": "arn:aws:secretsmanager:region:account-id:secret:secret-name"
}
]
}
Informações relacionadas
Criar uma instância de caderno do Amazon SageMaker IA
Políticas baseadas em identidade
Como solucionar problemas relacionados à conexão de repositórios Git a instâncias de caderno do SageMaker IA?