デプロイされた Web サービスを更新する (v1)
適用対象:Azure CLI ml 拡張機能 v1Python SDK azureml v1
この記事では、Azure Machine Learning と共にデプロイされた Web サービスを更新する方法について説明します。
前提条件
この記事は、既に Web サービスを Azure Machine Learning と共にデプロイしてあることを前提としています。 Web サービスをデプロイする方法を学習する必要がある場合は、これらの手順に従ってください。
この記事のコード スニペットでは、Workflow() コンストラクターを使用するか、Workspace.from_config() を使用して保存された構成を読み込むことで、
ws
変数が既にワークスペースに初期化されていることを前提としています。 次のスニペットは、コンストラクターの使用方法を示しています。適用対象: Python SDK azureml v1
from azureml.core import Workspace ws = Workspace(subscription_id="mysubscriptionid", resource_group="myresourcegroup", workspace_name="myworkspace")
重要
この記事の Azure CLI コマンドの一部では、Azure Machine Learning 用に azure-cli-ml
、つまり v1 の拡張機能を使用しています。 v1 拡張機能のサポートは、2025 年 9 月 30 日に終了します。 その日付まで、v1 拡張機能をインストールして使用できます。
2025 年 9 月 30 日より前に、ml
(v2) 拡張機能に移行することをお勧めします。 v2 拡張機能の詳細については、Azure ML CLI 拡張機能と Python SDK v2 に関するページを参照してください。
Web サービスを更新する
Web サービスを更新するには、update
メソッドを使用します。 推論の構成で指定できる新しいモデル、新しいエントリ スクリプト、または新しい依存関係を使用するように Web サービスを更新することができます。 詳細については、Webservice.update のドキュメントを参照してください。
AKS Service の Update メソッドを参照してください。
ACI Service の Update メソッドを参照してください。
重要
新しいバージョンのモデルを作成するときは、それを使用したい各サービスを手動で更新する必要があります。
Azure Machine Learning デザイナーから発行された Web サービスを、SDK を使用して更新することはできません。
重要
Azure Kubernetes Service では、Blobfuse FlexVolume ドライバー (バージョン <=1.16 の場合) および Blob CSI driver (バージョン >=1.17 の場合) が使用されます。
そのため、クラスターのバージョンに合った正しい blobfuse 方式にデプロイするためには、クラスターのアップグレード後、Web サービスを更新または再デプロイすることが重要です。
注意
操作が既に進行中の場合、同じ 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 のドキュメントを参照してください。