Repositório privado para dependências de tempo de execução - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Repositório privado para dependências de tempo de execução

Você pode usar comandos ou scripts de pré-execução para configurar um gerenciador de dependências como pip ou conda no ambiente de trabalho. Para obter isolamento de rede, use qualquer uma dessas opções para redirecionar seus gerenciadores de dependências para acessar seus repositórios privados e executar funções remotas em um. VPC Os comandos ou scripts de pré-execução serão executados antes da execução da função remota. Você pode defini-las com o decorador @remote RemoteExecutorAPI, o ou dentro de um arquivo de configuração.

As seções a seguir mostram como acessar um repositório privado do Python Package Index (PyPI) gerenciado com. AWS CodeArtifact As seções também mostram como acessar um canal conda personalizado hospedado no Amazon Simple Storage Service (Amazon S3).

Como usar um repositório PyPI personalizado gerenciado com AWS CodeArtifact

Para usar CodeArtifact para gerenciar um repositório PyPI personalizado, os seguintes pré-requisitos são necessários:

  • O repositório PyPI privado já deve ter sido criado. Você pode utilizar AWS CodeArtifact para criar e gerenciar seus repositórios de pacotes privados. Para saber mais sobre isso CodeArtifact, consulte o Guia CodeArtifact do usuário.

  • Você VPC deve ter acesso ao seu CodeArtifact repositório. Para permitir uma conexão do seu com VPC o seu CodeArtifact repositório, você deve fazer o seguinte:

O exemplo de comando de pré-execução a seguir mostra como configurar o pip no trabalho de SageMaker treinamento para apontar para o seu CodeArtifact repositório. Para obter mais informações, consulte Configurar e usar pip com CodeArtifact.

# use a requirements.txt file to import dependencies @remote( instance_type="ml.m5.large" image_uri = "my_base_python:latest", dependencies = './requirements.txt', pre_execution_commands=[ "aws codeartifact login --tool pip --domain my-org --domain-owner <000000000000> --repository my-codeartifact-python-repo --endpoint-url https://vpce-xxxxx.api.codeartifact.us-east-1.vpce.amazonaws.com" ] ) def matrix_multiply(a, b): return np.matmul(a, b)

Como usar um canal conda personalizado hospedado no Amazon S3

Para usar o Amazon S3 para gerenciar um repositório conda personalizado, os seguintes pré-requisitos são necessários:

  • O canal conda privado já deve estar configurado no bucket do Amazon S3, e todos os pacotes dependentes devem ser indexados e carregados no bucket do Amazon S3. Para obter instruções sobre como indexar os pacotes conda, consulte Criação de canais personalizados.

  • Você VPC deve ter acesso ao bucket do Amazon S3. Para obter mais informações, consulte Endpoints para Amazon S3.

  • O ambiente conda básico na imagem de trabalho deve ter o boto3 instalado. Para verificar o ambiente, digite o seguinte na mensagem do Anaconda para verificar se boto3 aparece na lista gerada resultante.

    conda list -n base
  • A imagem de trabalho deve ser instalada com o conda, não com o mamba. Para verificar o ambiente, certifique-se de que a mensagem de código anterior não retorne mamba.

O exemplo de comandos de pré-execução a seguir mostra como configurar o conda no trabalho de SageMaker treinamento para apontar para seu canal privado no Amazon S3. Os comandos de pré-execução removem o canal padrão e adicionam canais personalizados a um arquivo de configuração do conda. .condarc

# specify your dependencies inside a conda yaml file @remote( instance_type="ml.m5.large" image_uri = "my_base_python:latest", dependencies = "./environment.yml", pre_execution_commands=[ "conda config --remove channels 'defaults'" "conda config --add channels 's3://my_bucket/my-conda-repository/conda-forge/'", "conda config --add channels 's3://my_bucket/my-conda-repository/main/'" ] ) def matrix_multiply(a, b): return np.matmul(a, b)