Azure Machine LearningのDeployment TemplatesにCLI/SDK対応、変更点と確認ポイントを解説

Azure Machine LearningのDeployment Templatesは、これまでポータル中心で扱っていたデプロイ構成を、az mlコマンドやPython SDKから管理しやすくなる方向に進みました。2026年6月3日に案内された「Public Preview: CLI and SDK support for Deployment Templates」は、モデルのデプロイ設定をチーム標準として管理したいプラットフォーム担当者やMLOps担当者にとって重要な更新です。結論から言うと、すぐに本番運用を全面移行する話ではなく、まずは開発・検証環境で「テンプレートの作成、更新、一覧確認、無効化、復元、SDK操作」をCI/CDやIaCパイプラインに組み込めるか確認する段階です。

Deployment Templatesは、Azure MLのデプロイ設定を再利用可能な形で定義する仕組みです。今回のポイントは、テンプレートを画面操作だけでなくCLIとSDKから扱えるようになり、標準化・自動化・レビュー可能な運用に寄せやすくなったことです。一方で、Public Previewは非本番用途での検証を前提とするステータスであり、仕様変更の可能性を見込んだ設計が必要です。Azure Updates上でも「In preview」は、すべてのAzure顧客が非本番用途のテストに利用できる段階として説明されています。(Microsoft Azure)

目次

今回の変更点は「Deployment TemplatesをCLI/SDKで管理できること」

今回のPublic Previewでは、Azure Machine LearningのDeployment TemplatesにCLIとSDKのサポートが追加されました。Deployment TemplatesはAzure MLのデプロイ構成を定義する再利用可能なテンプレートで、チームやプロジェクトをまたいでデプロイ設定を標準化・共有するために使います。Microsoft LearnのCLIリファレンスでは、Deployment Templatesは「Azure MLのデプロイ構成を定義する再利用可能なテンプレート」であり、ワークスペースベースではなくレジストリベースの操作をサポートすると説明されています。(Microsoft Learn)

ここで注意したいのは、Azure Resource ManagerのARMテンプレートやBicepの話ではない点です。名前に「Deployment Template」とありますが、この記事で扱うのはAzure Machine Learningのモデルデプロイ設定をテンプレート化する機能です。インフラ全体を作るARM/Bicepテンプレートとは目的が異なります。

実務上の意味は明確です。モデルをオンラインエンドポイントへデプロイするたびに、インスタンスタイプ、インスタンス数、環境、プローブ、スコアリング設定などを個別に調整していたチームは、標準構成をDeployment Templateとして管理し、CLIやSDKから再利用できるようになります。

何が便利になるのか

これまでポータル操作に寄りがちだったテンプレート管理を、Git管理されたYAML、CI/CD、レビュー、承認フローに載せやすくなります。特に複数チームがAzure Machine Learningを使っている組織では、デプロイ構成のばらつきを抑える効果があります。

観点これまで起きやすかった課題CLI/SDK対応後に期待できること
標準化チームごとにデプロイ設定が微妙に異なる推奨構成をテンプレート化して横展開しやすい
変更管理ポータル変更の履歴やレビューが弱くなりやすいYAMLやコードをGitでレビューできる
自動化手作業が残り、環境差分が出やすいパイプラインから作成・更新・確認を実行できる
監査誰がどの設定を使ったか追いづらいテンプレート名、バージョン、タグで管理しやすい
再現性デプロイ時の暗黙設定が残りやすい明示的なテンプレートで再現性を高められる

特にMLOpsでは「学習パイプライン」だけでなく「推論環境の標準化」が重要です。モデル精度が同じでも、デプロイ時のインスタンスサイズ、レプリカ数、ヘルスチェック、環境変数、モデルマウント設定が違えば、コストや可用性、トラブル時の切り分けに影響します。

利用できる主なCLI操作

Azure CLIでは、az ml deployment-templateコマンドグループが用意されています。Microsoft Learnでは、このコマンドグループはAzure CLIのml拡張機能に含まれ、プレビュー中の機能として扱われています。(Microsoft Learn)

代表的な操作は次のとおりです。

操作コマンド例用途
作成az ml deployment-template createYAMLファイルからテンプレートを作成
一覧az ml deployment-template listレジストリ内のテンプレートを確認
詳細確認az ml deployment-template show名前とバージョンを指定して内容を確認
更新az ml deployment-template update説明やタグなど一部フィールドを更新
アーカイブaz ml deployment-template archiveテンプレートを非アクティブ扱いにする
復元az ml deployment-template restoreアーカイブ済みテンプレートを再び有効化

基本的な利用イメージは次のようになります。

az extension update -n ml

az ml deployment-template create \
  --file template.yml \
  --registry-name myregistry

az ml deployment-template list \
  --registry-name myregistry \
  --output table

az ml deployment-template show \
  --name my-template \
  --version 1 \
  --registry-name myregistry

CLIで特に重要なのは、--workspace-nameではなく--registry-nameを使う点です。Deployment Templatesはレジストリベースの操作のみをサポートすると説明されており、既存のAzure MLワークスペース操作と同じ感覚でスクリプトを書くと失敗しやすくなります。(Microsoft Learn)

また、CLIのupdateは何でも変更できる万能操作ではありません。Microsoft Learnでは、az ml deployment-template updateは説明やタグなどのメタデータ更新に使い、エンドポイントやデプロイ構成など構造的な変更にはYAMLファイルを指定したcreateコマンドを使うと説明されています。(Microsoft Learn)

SDKではPythonコードからテンプレートを扱える

Python SDK側では、MLClientからdeployment_templates操作を扱えます。Microsoft Learnでは、MLClientにdeployment_templates属性があり、Deployment Template関連の操作コレクションを返すと説明されています。(Microsoft Learn)

SDKでは、YAMLファイルを読み込んでDeploymentTemplateオブジェクトを作成するload_deployment_templateも用意されています。これは、ローカルのYAMLファイルや開いているファイルオブジェクトからDeployment Template構成を読み込むメソッドです。(Microsoft Learn)

利用イメージは次のようになります。

from azure.identity import DefaultAzureCredential
from azure.ai.ml import MLClient, load_deployment_template

ml_client = MLClient(
    credential=DefaultAzureCredential(),
    registry_name="myregistry"
)

template = load_deployment_template("template.yml")
ml_client.deployment_templates.create_or_update(template)

SDKでは、create_or_update、delete、get、list、archive、restoreといった操作が定義されています。create_or_updateはDeploymentTemplateオブジェクト、辞書、またはYAMLファイルパスからテンプレートを作成・更新できます。deleteは名前とバージョンを指定してテンプレートを削除する操作として説明されています。(Microsoft Learn)

ただし、SDKのDeploymentTemplate関連クラスやメソッドにはExperimentalの注記があります。プレビュー段階ではメソッド名、引数、挙動が変わる可能性があるため、本番系パイプラインへ入れる場合はSDKバージョンを固定し、リリースノートを確認する運用が必要です。(Microsoft Learn)

Deployment Templateに含めるべき設定

Deployment Templateは、単なる名前付きメモではありません。デプロイの再現性に関わる設定を明示するためのものです。Microsoft LearnのDeploymentTemplateクラスでは、環境、リクエスト設定、liveness/readiness probe、インスタンス数、インスタンスタイプ、モデル、コード構成、環境変数、Application Insights、許可するインスタンスタイプ、既定のインスタンスタイプ、スコアリングポート、スコアリングパスなどの要素がコンストラクターに含まれています。(Microsoft Learn)

実務では、少なくとも次の観点をテンプレート化の対象にすると効果が出やすくなります。

設定項目確認すべきポイント失敗しやすい例
instance_type推奨するVM SKUやGPU有無高性能SKUを既定にして不要なコストが発生
instance_count最小構成と可用性のバランス検証用の1台構成を本番相当に流用
allowed_instance_types利用可能なSKUを制限チームごとに異なるSKUを自由に選んで費用管理が崩れる
environment推論環境の再現性手元環境との差分でデプロイ後に起動失敗
code_configurationスコアリングコードの場所と入口ポータルで指定した暗黙設定がテンプレートに残らない
liveness_probe / readiness_probeヘルスチェック条件起動に時間がかかるモデルで早期失敗する
app_insights_enabled監視の有効化障害時にログ不足で原因調査が遅れる
environment_variables環境ごとの差分管理シークレットをYAMLに直書きしてしまう

シークレットや接続文字列をテンプレートに直接書かないことも重要です。テンプレートはGit管理やチーム共有の対象になりやすいため、Key Vault、マネージドID、接続設定など、組織の標準的なシークレット管理方針と合わせて設計してください。

管理者が確認すべきポイント

管理者が最初に見るべきなのは、機能そのものよりも「誰が、どのレジストリに、どのテンプレートを登録・変更できるか」です。Deployment Templatesはチーム標準のデプロイ構成になり得るため、権限が広すぎると、標準化のための仕組みが逆に混乱の原因になります。

レジストリ単位の権限を整理する

CLIリファレンスでは、Deployment Templatesはワークスペースベースではなくレジストリベースの操作をサポートするとされています。(Microsoft Learn) そのため、既存のAzure MLワークスペースに対する権限だけでなく、Azure MLレジストリに対する権限設計を確認してください。

運用上は、次のような分離が現実的です。

役割付与する権限の考え方
プラットフォーム管理者テンプレートの作成、更新、アーカイブ、復元を実行できる
MLOps担当者検証用レジストリで作成・更新、本番相当レジストリは承認制
データサイエンティストテンプレートの参照、必要に応じて検証環境での利用
CI/CDサービスプリンシパル必要なレジストリへの最小権限のみ付与

「便利だから全員に書き込み権限を付ける」は避けるべきです。Deployment Templateは推論環境の標準そのものになるため、変更にはコードレビューや承認を挟む設計にしてください。

CLIとSDKのバージョンを固定する

プレビュー機能では、CLIやSDKの更新により挙動が変わる可能性があります。Azure CLIのaz mlはml拡張機能で提供され、リファレンスではバージョン2.15.0以上の拡張機能に含まれると説明されています。(Microsoft Learn)

CI/CDでは、次の確認をパイプライン冒頭に入れておくとトラブルを減らせます。

az version
az extension show -n ml
az ml deployment-template --help

SDKを使う場合は、azure-ai-mlのバージョンをrequirements.txtやpyproject.tomlで固定し、検証環境で更新テストをしてから本番系パイプラインへ反映しましょう。

CLI v1 / SDK v1からの移行状況も見直す

Azure Machine Learningでは、CLI v1のサポートは2025年9月30日に終了しており、SDK v1のサポートは2026年6月30日に終了予定と説明されています。MicrosoftはCLI v2、SDK v2への移行を推奨しています。(Microsoft Learn)

Deployment TemplatesのCLI/SDK対応を試すタイミングで、古いazure-cli-ml拡張やSDK v1に依存したスクリプトが残っていないかも確認してください。テンプレート管理だけ新しくしても、周辺のジョブ作成、モデル登録、デプロイ処理がv1のままだと、保守性が中途半端になります。

開発者・MLOps担当者が確認すべきポイント

開発者やMLOps担当者は、テンプレートを「便利な設定ファイル」として扱うだけでなく、「チームが合意したデプロイ契約」として設計することが重要です。

YAMLをGitで管理する

CLIのcreateはYAMLファイルからDeployment Templateを作成できます。リファレンスでは、YAMLにはエンドポイント、パラメーター、メタデータを含む完全なテンプレート定義を入れられると説明されています。(Microsoft Learn)

おすすめの管理例は次のような構成です。

ml-deployment-templates/
├── README.md
├── templates/
│   ├── cpu-small-online.yml
│   ├── cpu-standard-online.yml
│   └── gpu-inference.yml
└── pipelines/
    └── publish-template.yml

README.mdには、どのテンプレートをどの用途で使うかを書いておきます。たとえば「PoC用」「小規模本番相当」「GPU推論用」のように用途を明確にすると、利用者が迷いにくくなります。

バージョンを必ず指定して使う

テンプレートを参照するときは、可能な限り名前だけでなくバージョンも指定します。SDKのgetでは、バージョンを省略すると最新バージョンを取得すると説明されています。(Microsoft Learn) これは便利ですが、CI/CDでは意図しない最新化につながることがあります。

たとえば、検証環境では最新テンプレートを使い、本番相当環境では承認済みバージョンを固定する、といったルールが現実的です。

環境推奨する参照方法
個人検証最新版の利用を許容
チーム検証バージョン指定を推奨
ステージングリリース候補バージョンを固定
本番相当承認済みバージョンのみ利用

updateで構造変更しようとしない

CLIのupdateは、説明やタグなどのメタデータ更新が中心です。エンドポイントやデプロイ構成のような構造的な変更は、YAMLファイルを使ったcreateを使うと説明されています。(Microsoft Learn)

そのため、次のように使い分けると安全です。

変更内容推奨操作
説明文の修正az ml deployment-template update --set "description=..."
タグの追加az ml deployment-template update --set "tags=..."
インスタンスタイプ変更YAMLを更新し、新バージョンとして作成
ヘルスチェック設定変更YAMLを更新し、新バージョンとして作成
利用停止archiveで非アクティブ化
誤って停止したテンプレートの再利用restoreで復元

「既存バージョンを上書きして直す」のではなく、「新しいバージョンを作る」運用にした方が、障害時の切り戻しが簡単になります。

導入手順:まず検証環境で小さく始める

いきなり全チームのデプロイをDeployment Templatesへ寄せる必要はありません。まずは1つのモデル、1つの検証用レジストリ、1つのテンプレートから始めるのが安全です。

手順作業内容完了条件
現状把握既存のデプロイ設定を洗い出すインスタンスタイプ、環境、プローブ、環境変数を一覧化
テンプレート設計YAMLに標準構成を定義するレビュー可能なPRとして作成
検証用登録az ml deployment-template createで登録listとshowで内容を確認
SDK検証Python SDKから読み込み・作成を試すCI環境のIDで成功する
パイプライン化GitHub ActionsやAzure Pipelinesへ組み込む手作業なしで登録できる
運用ルール化命名、バージョン、アーカイブ基準を決めるREADMEや運用手順に反映
段階展開複数モデル・複数チームへ拡張例外設定を把握できる

小さく始める理由は、テンプレート自体よりも周辺ルールの調整に時間がかかるためです。権限、命名、レビュー、承認、ロールバック、コスト管理が決まっていない状態でテンプレートだけ増やすと、後から整理する負担が大きくなります。

失敗しやすいポイントと回避策

失敗しやすいポイント起きる問題回避策
ワークスペース操作と同じ感覚で使う--workspace-name前提のスクリプトが失敗するDeployment Templatesは--registry-name中心で設計する
プレビュー機能を本番前提で固定化する仕様変更時にパイプラインが止まるCLI/SDKのバージョン固定と検証環境での更新テストを行う
最新版テンプレートを暗黙参照するある日突然デプロイ構成が変わる本番相当環境ではテンプレートバージョンを固定する
YAMLにシークレットを書くGit履歴やレビュー画面に機密情報が残るKey VaultやマネージドIDを使う
アーカイブと削除のルールがない使ってよいテンプレートが分からなくなる非推奨はarchive、完全削除は承認制にする
タグ設計がない用途や所有者が追跡できないowner、environment、statusなどを標準化する
コスト観点が抜ける高価なSKUが標準化されてしまうallowed_instance_typesで利用可能SKUを制限する
ヘルスチェックが厳しすぎる大きなモデルが起動前に失敗するモデルの起動時間を測り、probe設定を調整する

特に避けたいのは、「ポータルで動いた設定をそのままテンプレート化しただけ」で満足することです。テンプレート化の目的は、動く設定を保存することではなく、チームとして安全に再利用できる設定を作ることです。

本番導入の判断基準

Public Previewの段階では、全面的な本番移行よりも、開発・検証・ステージングで運用設計を固めるのが現実的です。次の条件を満たせる場合は、段階的な導入を検討できます。

判断項目導入しやすい状態まだ待つべき状態
プレビュー機能の扱い社内で非本番検証ルールがあるプレビュー利用の承認基準がない
テンプレート管理Gitレビューと承認フローがある個人がローカルでYAMLを管理している
権限管理レジストリ単位の書き込み権限を絞れる全員が自由に変更できる
CI/CDCLI/SDKのバージョン固定ができる実行環境が毎回変わる
ロールバック旧バージョンへ戻す手順がある最新版しか残していない
監視Application Insightsやログ確認手順があるデプロイ後の確認が手作業のみ

プレビュー段階で最も価値が出るのは、チーム横断の標準テンプレートを作る準備です。本番デプロイをすぐ置き換えるより、まず「推奨テンプレートをどの粒度で作るか」「誰が承認するか」「どの環境から適用するか」を決める方が効果的です。

既存運用から移行する場合の考え方

既存のAzure Machine Learning運用がある場合、Deployment Templatesへの移行は一括置換ではなく、既存設定の棚卸しから始めます。

まず、よく使われているデプロイ構成を3種類程度に分類します。

分類例想定用途
cpu-small-onlinePoC、小規模検証、低トラフィック推論
cpu-standard-online標準的なオンライン推論
gpu-inferenceGPUが必要な大規模モデル推論

次に、それぞれの構成について、インスタンスタイプ、インスタンス数、環境、ヘルスチェック、監視設定、許可SKUをYAML化します。最後に、既存モデルのうち影響が小さいものからテンプレートを適用し、デプロイ結果、コスト、起動時間、ログ出力を確認します。

移行時に重要なのは、既存の全設定を無理にテンプレート化しないことです。例外が多すぎる構成は、まず例外の理由を確認してください。単なる過去の名残であれば標準テンプレートへ寄せ、業務上必要な差分であれば別テンプレートとして明示します。

まず確認すべきチェックリスト

導入前に、次の項目を確認してください。

  • Azure CLIのml拡張機能が利用できるか
  • az ml deployment-template --helpでコマンドが表示されるか
  • 操作対象のAzure MLレジストリが決まっているか
  • CI/CDで使うサービスプリンシパルまたはマネージドIDの権限が足りているか
  • テンプレートYAMLをGitでレビューできる状態になっているか
  • テンプレート名とバージョン番号のルールがあるか
  • archive、restore、SDKのdeleteを誰が実行できるか決まっているか
  • プレビュー機能を利用できる環境範囲が明確か
  • 既存のSDK v1、CLI v1依存が残っていないか
  • 本番相当環境ではテンプレートのバージョン固定ができるか

まとめ:Deployment Templatesは「推論環境の標準化」を進める機能

今回の「Public Preview: CLI and SDK support for Deployment Templates」は、Azure Machine LearningのデプロイテンプレートをMLOpsの管理対象にしやすくする更新です。CLIではaz ml deployment-templateで作成、一覧、詳細確認、更新、アーカイブ、復元を扱え、SDKではPythonコードから作成・更新・取得・一覧・削除などの操作を組み込めます。

管理者は、まずレジストリ単位の権限、CLI/SDKバージョン、プレビュー機能の利用範囲を確認してください。開発者やMLOps担当者は、YAMLをGit管理し、テンプレート名・バージョン・タグ・アーカイブ基準を決めるところから始めるのが現実的です。

次に取るべき行動は、既存のデプロイ設定を1つ選び、検証用レジストリにDeployment Templateとして登録してみることです。そのうえで、手作業で行っていた設定がどこまでCLI/SDKで再現できるか、CI/CDに組み込んだときに権限やバージョン管理で問題が出ないかを確認しましょう。いきなり本番へ広げるより、まず標準テンプレートを小さく作り、チーム内でレビューできる形にすることが成功への近道です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次