Uppdatera en distribuerad webbtjänst (v1)

GÄLLER FÖR:Azure CLI ml-tillägget 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 Mašinsko učenje.

Förutsättningar

Viktigt!

Några av Azure CLI-kommandona i den här artikeln använder azure-cli-mltillägget , eller v1, för Azure Mašinsko učenje. 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 postskript 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 manuellt uppdatera varje tjänst som du vill använda den.

Du kan inte använda SDK för att uppdatera en webbtjänst som publicerats från Azure Mašinsko učenje designer.

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.

Kommentar

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.

Använda 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ägget 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

Dricks

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