Partilhar via


Usar pacotes Python privados com o Azure Machine Learning

APLICA-SE A: Python SDK azureml v1

Neste artigo, saiba como usar pacotes Python privados com segurança no Azure Machine Learning. Os casos de uso para pacotes Python privados incluem:

  • Desenvolveu um pacote privado que não quer partilhar publicamente.
  • Você deseja usar um repositório com curadoria de pacotes armazenados em um firewall corporativo.

A abordagem recomendada depende se você tem poucos pacotes para um único espaço de trabalho do Azure Machine Learning ou um repositório inteiro de pacotes para todos os espaços de trabalho dentro de uma organização.

Os pacotes privados são usados através da classe Environment . Dentro de um ambiente, você declara quais pacotes Python usar, incluindo os privados. Para saber mais sobre o ambiente no Azure Machine Learning em geral, consulte Como usar ambientes.

Pré-requisitos

Use um pequeno número de pacotes para desenvolvimento e teste

Para alguns pacotes privados para um único espaço de trabalho, use o método estático Environment.add_private_pip_wheel() . Essa abordagem permite que você adicione rapidamente um pacote privado ao espaço de trabalho e é adequada para fins de desenvolvimento e teste.

Aponte o argumento caminho do arquivo para um arquivo de roda local e execute o add_private_pip_wheel comando. O comando retorna uma URL usada para rastrear o local do pacote em seu espaço de trabalho. Capture o URL de armazenamento e passe-lhe o add_pip_package() método.

whl_url = Environment.add_private_pip_wheel(workspace=ws,file_path = "my-custom.whl")
myenv = Environment(name="myenv")
conda_dep = CondaDependencies()
conda_dep.add_pip_package(whl_url)
myenv.python.conda_dependencies=conda_dep

Internamente, o serviço Azure Machine Learning substitui a URL por uma URL SAS segura, para que seu arquivo de roda seja mantido privado e seguro.

Usar um repositório de pacotes do feed do Azure DevOps

Se você estiver desenvolvendo ativamente pacotes Python para seu aplicativo de aprendizado de máquina, poderá hospedá-los em um repositório do Azure DevOps como artefatos e publicá-los como um feed. Essa abordagem permite integrar o fluxo de trabalho de DevOps para criar pacotes com seu Espaço de Trabalho do Azure Machine Learning. Para saber como configurar feeds Python usando o Azure DevOps, leia Introdução aos pacotes Python nos artefatos do Azure

Essa abordagem usa o Personal Access Token para autenticar no repositório. A mesma abordagem é aplicável a outros repositórios com autenticação baseada em token, como repositórios privados do GitHub.

  1. Crie um Token de Acesso Pessoal (PAT) para sua instância do Azure DevOps. Defina o escopo do token como Packaging > Read.

  2. Adicione a URL do Azure DevOps e a PAT como propriedades do espaço de trabalho, usando o método Workspace.set_connection .

    from azureml.core import Workspace
    
    pat_token = input("Enter secret token")
    ws = Workspace.from_config()
    ws.set_connection(name="connection-1", 
       category = "PythonFeed",
       target = "https://pkgs.dev.azure.com/<MY-ORG>", 
       authType = "PAT", 
       value = pat_token) 
    
  3. Crie um ambiente do Azure Machine Learning e adicione pacotes Python a partir do feed.

    from azureml.core import Environment
    from azureml.core.conda_dependencies import CondaDependencies
    
    env = Environment(name="my-env")
    cd = CondaDependencies()
    cd.add_pip_package("<my-package>")
    cd.set_pip_option("--extra-index-url https://pkgs.dev.azure.com/<MY-ORG>/_packaging/<MY-FEED>/pypi/simple")")
    env.python.conda_dependencies=cd
    

O ambiente agora está pronto para ser usado em execuções de treinamento ou implantações de ponto de extremidade de serviço Web. Ao criar o ambiente, o serviço Azure Machine Learning usa a PAT para autenticar no feed com a URL base correspondente.

Usar um repositório de pacotes de armazenamento privado

Você pode consumir pacotes de uma conta de armazenamento do Azure dentro do firewall da sua organização. A conta de armazenamento pode conter um conjunto selecionado de pacotes ou um espelho interno de pacotes disponíveis publicamente.

Para configurar esse armazenamento privado, consulte Proteger um espaço de trabalho do Azure Machine Learning e recursos associados. Você também deve colocar o Azure Container Registry (ACR) atrás da rede virtual.

Importante

Você deve concluir esta etapa para poder treinar ou implantar modelos usando o repositório de pacotes privados.

Depois de concluir essas configurações, você pode fazer referência aos pacotes na definição de ambiente do Azure Machine Learning por sua URL completa no armazenamento de blobs do Azure.

Próximos passos