Uppdatera en distribuerad webbtjänst (v1)

GÄLLER FÖR:Azure CLI ml-tillägg v1Python SDK azureml v1

I den här artikeln får du lära dig hur du uppdaterar en webbtjänst som har distribuerats med Azure Machine Learning.

Förutsättningar

  • Den här artikeln förutsätter att du redan har distribuerat en webbtjänst med Azure Machine Learning. Om du behöver lära dig hur du distribuerar en webbtjänst följer du dessa steg.

  • Kodfragmenten i den här artikeln förutsätter att variabeln ws redan har initierats till din arbetsyta med hjälp av konstruktorn Workflow() eller genom att läsa in en sparad konfiguration med Workspace.from_config(). Följande kodfragment visar hur du använder konstruktorn:

    GÄLLER FÖR:Python SDK azureml v1

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

Viktigt

Vissa Av Azure CLI-kommandona i den här artikeln använder azure-cli-mltillägget , eller v1, för Azure Machine Learning. Stödet för v1-tillägget upphör den 30 september 2025. Du kommer att kunna installera och använda v1-tillägget fram till det datumet.

Vi rekommenderar att du övergår till mltillägget , eller v2, före den 30 september 2025. Mer information om v2-tillägget finns i Azure ML CLI-tillägget och Python SDK v2.

Uppdatera webbtjänst

Om du vill uppdatera en webbtjänst använder du update metoden . Du kan uppdatera webbtjänsten så att den använder en ny modell, ett nytt inmatningsskript eller nya beroenden som kan anges i en slutsatsdragningskonfiguration. Mer information finns i dokumentationen för Webservice.update.

Se AKS-tjänstuppdateringsmetod.

Se ACI-tjänstuppdateringsmetod.

Viktigt

När du skapar en ny version av en modell måste du uppdatera varje tjänst som du vill använda manuellt.

Du kan inte använda SDK för att uppdatera en webbtjänst som publicerats från Azure Machine Learning-designern.

Viktigt

Azure Kubernetes Service använder Blobfuse FlexVolume-drivrutinen för versionerna <=1.16 och Blob CSI-drivrutinen för versionerna >=1.17.

Därför är det viktigt att distribuera om eller uppdatera webbtjänsten efter klusteruppgradering för att distribuera till rätt blobfuse-metod för klusterversionen.

Anteckning

När en åtgärd redan pågår svarar alla nya åtgärder på samma webbtjänst med 409-konfliktfel. Om till exempel åtgärden skapa eller uppdatera webbtjänsten pågår och om du utlöser en ny borttagningsåtgärd utlöser den ett fel.

Med SDK

Följande kod visar hur du använder SDK:t för att uppdatera modell-, miljö- och inmatningsskriptet för en webbtjänst:

GÄLLER 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())

Använda CLI

Du kan också uppdatera en webbtjänst med hjälp av ML CLI. I följande exempel visas hur du registrerar en ny modell och sedan uppdaterar en webbtjänst för att använda den nya modellen:

GÄLLER FÖR:Azure CLI ml-tillägg 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

Tips

I det här exemplet används ett JSON-dokument för att skicka modellinformationen från registreringskommandot till uppdateringskommandot.

Om du vill uppdatera tjänsten så att den använder ett nytt postskript eller en ny miljö skapar du en inferenskonfigurationsfil och anger den med parametern ic .

Mer information finns i dokumentationen om az ml-tjänstuppdatering .

Nästa steg