デプロイされた 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 のドキュメントを参照してください。

次のステップ