Aktualisieren eines bereitgestellten Webdiensts (v1)

GILT FÜR:Azure CLI-ML-Erweiterungv1Python SDK azureml v1

In diesem Artikel erfahren Sie, wie Sie einen Webdienst aktualisieren, der mit Azure Machine Learning bereitgestellt wurde.

Voraussetzungen

  • In diesem Artikel wird davon ausgegangen, dass Sie bereits einen Webdienst mit Azure Machine Learning bereitgestellt haben. Befolgen Sie diese Schritte, wenn Sie erfahren müssen, wie ein Webdienst bereitgestellt wird.

  • In den Codeausschnitten in diesem Artikel wird davon ausgegangen, dass die ws-Variable bereits mithilfe des Workflow()- Konstruktors oder durch Laden einer gespeicherten Konfiguration mit Workspace.from_config() in Ihren Arbeitsbereich initialisiert wurde. Im folgenden Codeausschnitt wird die Verwendung des Konstruktors veranschaulicht:

    GILT FÜR:Python SDK azureml v1

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

Wichtig

Einige Azure CLI-Befehle in diesem Artikel verwenden die Erweiterung azure-cli-ml oder v1 für Azure Machine Learning. Der Support für die v1-Erweiterung endet am 30. September 2025. Sie können die v1-Erweiterung bis zu diesem Datum installieren und verwenden.

Es wird empfohlen, vor dem 30. September 2025 zur ml- oder v2-Erweiterung zu wechseln. Weitere Informationen zur v2-Erweiterung finden Sie unter Was sind die Azure Machine Learning CLI und das Python SDK v2?.

Aktualisieren des Webdiensts

Verwenden Sie die update-Methode, um einen Webdienst zu aktualisieren. Sie können den Webdienst aktualisieren, um ein neues Modell, ein neues Eingabeskript oder neue Abhängigkeiten zu verwenden, die in einer Rückschlusskonfiguration angegeben werden können. Weitere Informationen finden Sie in der Dokumentation zu Webservice.update.

Weitere Informationen finden Sie unter AKS-Dienstaktualisierungsmethode.

Weitere Informationen finden Sie unter ACI-Dienstaktualisierungsmethode.

Wichtig

Wenn Sie eine neue Version eines Modells erstellen, müssen Sie jeden Dienst, der die neue Version verwenden soll, manuell aktualisieren.

Sie können nicht das SDK verwenden, um einen Webdienst zu aktualisieren, der über den Azure Machine Learning-Designer veröffentlicht wurde.

Wichtig

Azure Kubernetes Service verwendet Blobfuse FlexVolume Treiber für die Versionen <=1.16 und Blob CSI Treiber für die Versionen >=1.17.

Daher ist es wichtig, den Webdienst nach dem Clusterupgrade erneut bereitzustellen oder zu aktualisieren, um die Bereitstellung für die richtige Blobfuse-Methode für die Clusterversion durchzuführen.

Hinweis

Wenn ein Vorgang bereits ausgeführt wird, antwortet jeder neue Vorgang für denselben Webdienst mit einem 409-Konfliktfehler. Wenn beispielsweise ein Webdienstvorgang erstellt oder aktualisiert wird und Sie einen neuen Löschvorgang auslösen, wird ein Fehler ausgelöst.

Verwenden des SDK

Im folgenden Code wird gezeigt, wie Sie mithilfe des SDK das Modell, die Umgebung und das Eingabeskript für einen Webdienst aktualisieren:

GILT FÜR: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())

Verwenden der CLI

Sie können einen Webdienst auch über die ML CLI aktualisieren. Im folgenden Beispiel wird veranschaulicht, wie Sie ein neues Modell registrieren und anschließend einen Webdienst für die Verwendung des neuen Modells aktualisieren:

GILT FÜR:Azure CLI-ML-Erweiterung 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

Tipp

In diesem Beispiel wird ein JSON-Dokument verwendet, um die Modellinformationen vom Registrierungsbefehl an den Aktualisierungsbefehl zu übergeben.

Um den Dienst so zu aktualisieren, dass für ihn ein neues Eingabeskript oder eine neue Umgebung verwendet wird, erstellen Sie eine Rückschlusskonfigurationsdatei, und geben Sie diese mit dem ic-Parameter an.

Weitere Informationen finden Sie in der Dokumentation zu az ml service update.

Nächste Schritte