使用私人 Python 套件搭配 Azure Machine Learning

適用於:Python SDK azureml v1

在本文中,您將了解如何在 Azure Machine Learning 中安全地使用私人 Python 套件。 私人 Python 套件的使用案例包括:

  • 您已開發出不想公開共用的私人套件。
  • 您想要使用儲存在企業防火牆內套件的策展存放庫。

建議的方法取決於您的單一 Azure Machine Learning 工作區是否有少數套件,或是組織內所有工作區的整個套件存放庫。

私人套件會透過 Environment 類別使用。 在環境內,您會宣告要使用的 Python 套件,包括私人套件。 若要大致了解 Azure Machine Learning 中的環境,請參閱如何使用環境

必要條件

使用少量套件進行開發和測試

針對單一工作區的少數私人套件,請使用靜態 Environment.add_private_pip_wheel() 方法。 此方法可讓您快速將私人套件新增至工作區,而且非常適合用於開發和測試用途。

將檔案路徑引數指向本機 wheel 檔案,然後執行 add_private_pip_wheel 命令。 此命令會傳回用來追蹤您工作區內套件位置的 URL。 擷取儲存體 URL,並將其傳遞至 add_pip_package() 方法。

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

就內部而言,Azure Machine Learning 服務會使用安全 SAS URL 取代該 URL,因此您的車輪檔案可保持私密且安全。

使用來自 Azure DevOps 摘要套件的存放庫

如果您正在積極開發機器學習應用程式的 Python 套件,您可以將它們裝載在 Azure DevOps 存放庫中作為成品,並將其發佈為摘要。 此方法可讓您整合使用 Azure Machine Learning 工作區建置套件 DevOps 的工作流程。 若要了解如何使用 Azure DevOps 設定 Python 摘要,請參閱在 Azure Artifacts 中開始使用 Python 套件

此方法會使用個人存取權杖來針對存放庫進行驗證。 相同方法適用於使用權杖型驗證的其他存放庫,例如私人 GitHub 存放庫。

  1. 為您的 Azure DevOps 執行個體建立個人存取權杖 (PAT)。 將權杖的範圍設定為 [封裝 > 讀取]

  2. 使用 Workspace.set_connection 方法,新增 Azure DevOps URL 和 PAT 作為工作區屬性。

    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. 建立 Azure Machine Learning 環境,並從摘要新增 Python 套件。

    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
    

環境現在已準備好用於定型執行或 Web 服務端點部署。 建置環境時,Azure Machine Learning 服務會使用 PAT 對具有相符基礎 URL 的摘要進行驗證。

使用來自私人儲存體的套件存放庫

您可以取用來自組織防火牆內的 Azure 儲存體帳戶的套件。 儲存體帳戶可以保留一組策展的套件或公開可用套件的內部鏡像。

若要設定這類私人儲存體,請參閱保護 Azure Machine Learning 工作區和相關聯的資源。 您也必須將 Azure Container Registry (ACR) 放在 VNet 後方

重要

您必須完成此步驟,才能使用私人套件儲存庫來定型或部署模型。

完成這些設定之後,您可以參考 Azure Machine Learning 環境定義中的套件 (透過其在 Azure Blob 儲存體中的完整 URL)。

下一步