デプロイされた Web サービスを更新する (v1)
適用対象:Azure CLI ml 拡張機能 v1
Python SDK azureml v1
この記事では、Azure Machine Learning と共にデプロイされた Web サービスを更新する方法について説明します。
前提条件
この記事は、既に Web サービスを Azure Machine Learning と共にデプロイしてあることを前提としています。 Web サービスをデプロイする方法を学習する必要がある場合は、これらの手順に従ってください。
この記事のコード スニペットでは、Workflow() コンストラクターを使用するか、Workspace.from_config() を使用して保存された構成を読み込むことで、
ws
変数が既にワークスペースに初期化されていることを前提としています。 次のスニペットは、コンストラクターの使用方法を示しています。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 Machine Learning 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 サービスのモデル、環境、エントリ スクリプトを更新する方法を示しています。
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 のドキュメントを参照してください。