更新已部署的 Web 服務 (v1)

適用於:Azure CLI ml 延伸模組 v1Python SDK azureml v1

在本文中,您將了解如何更新隨 Azure Machine Learning 部署的 Web 服務。

必要條件

  • 本文假設您已使用 Azure Machine Learning 部署 Web 服務。 如果您需要了解如何部署 Web 服務,請遵循這些步驟

  • 本文中的程式碼片段假設 ws 變數已初始化至您的工作區,方法為使用 Workflow() 建構函式,或使用 Workspace.from_config() 載入已儲存的設定。 下列程式碼片段會示範如何使用建構函式:

    適用於:Python SDK azureml v1

    from azureml.core import Workspace
    ws = Workspace(subscription_id="mysubscriptionid",
                   resource_group="myresourcegroup",
                   workspace_name="myworkspace")
    

重要

本文中的 Azure CLI 命令使用 azure-cli-ml 或 v1 (Azure Machine Learning 的擴充功能)。 v1 擴充功能的支援將於 2025 年 9 月 30 日終止。 您將能安裝並使用 v1 擴充功能,直到該日期為止。

建議您在 2025 年 9 月 30 日之前轉換至 ml 或 v2 擴充功能。 如需有關 v2 擴充功能的詳細資訊,請參閱 Azure ML CLI 擴充功能和 Python SDK v2

更新 Web 服務

若要更新 Web 服務,請使用 update 方法。 您可以將 Web 服務更新為使用新的模型、新的輸入腳本或新的相依性 (可在推斷設定中指定)。 如需詳細資訊,請參閱 Webservice.update 的文件。

請參閱 AKS 服務更新方法

請參閱 ACI 服務更新方法

重要

建立新版本的模型時,必須手動更新您想要使用的每個服務。

您不能使用 SDK 來更新從 Azure Machine Learning 設計工具發佈的 Web 服務。

重要

Azure Kubernetes Service <=1.16 版使用 Blobfuse FlexVolume 驅動程式,而 >=1.17 版使用 Blob CSI 驅動程式

因此,在叢集升級之後,請務必重新部署或更新 Web 服務,以部署到適合叢集版本的正確 blobfuse 方法。

注意

有作業正在進行時,該相同 Web 服務上的任何新作業會傳回 409 衝突錯誤。 例如,如果建立或更新 Web 服務作業正在進行,但您觸發新的刪除作業,則會擲回錯誤。

使用 SDK

下列程式碼示範如何使用 SDK 來更新 Web 服務的模型、環境和輸入腳本:

適用於:Python SDK azureml v1

from azureml.core import Environment
from azureml.core.webservice import Webservice
from azureml.core.model import Model, InferenceConfig

# Register new model.
new_model = Model.register(model_path="outputs/sklearn_mnist_model.pkl",
                           model_name="sklearn_mnist",
                           tags={"key": "0.1"},
                           description="test",
                           workspace=ws)

# Use version 3 of the environment.
deploy_env = Environment.get(workspace=ws,name="myenv",version="3")
inference_config = InferenceConfig(entry_script="score.py",
                                   environment=deploy_env)

service_name = 'myservice'
# Retrieve existing service.
service = Webservice(name=service_name, workspace=ws)



# Update to new model(s).
service.update(models=[new_model], inference_config=inference_config)
service.wait_for_deployment(show_output=True)
print(service.state)
print(service.get_logs())

使用 CLI

您也可以使用 ML CLI 來更新 Web 服務。 下列範例示範如何註冊新的模型,然後將 Web 服務更新為使用新的模型:

適用於:Azure CLI ml 延伸模組 v1

az ml model register -n sklearn_mnist  --asset-path outputs/sklearn_mnist_model.pkl  --experiment-name myexperiment --output-metadata-file modelinfo.json
az ml service update -n myservice --model-metadata-file modelinfo.json

提示

此範例中使用 JSON 文件,將來自註冊命令的模型資訊傳入更新命令。

若要將服務更新為使用新的輸入腳本或環境,請建立推斷組態檔,並使用 ic 參數來指定此組態檔。

如需詳細資訊,請參閱 az ml service update 文件。

後續步驟