Azure SDK documentation updateとは?armdevhub v0.7.0の変更点と移行ポイント

結論から言うと、今回の「Azure SDK documentation update: [Refresh sdk-resourcemanager/devhub/armdevhub]-generated-from-SDK Generation – Go-6325102」は、Azure SDK for Go の DevHub 管理プレーン SDKである sdk/resourcemanager/devhub/armdevhub を、API Version 2025-03-01-preview に合わせて再生成した更新です。PRは2026年5月20日にマージされ、armdevhub パッケージ v0.7.0 として公開されています。(GitHub)

既存環境が自動的に壊れる更新ではありません。ただし、Goアプリで armdevhub を利用していて v0.7.0 へ更新する場合は、破壊的変更、Azure DevOps OAuth関連の追加機能、Template系クライアントの追加、認証・RBAC・CIテストの見直しが必要です。

目次

Azure SDK documentation updateの概要

今回の更新は、Azure SDK for Goの中でも「Azure DevHub」を操作するResource Manager向けライブラリが対象です。Azure SDK for Goの管理プレーンライブラリは、Azureサブスクリプション内のリソースを管理するために使われます。(Microsoft Learn)

項目内容実務上の意味
対象パッケージgithub.com/Azure/azure-sdk-for-go/sdk/resourcemanager/devhub/armdevhubGoからAzure DevHubを操作するコードが対象
更新日2026年5月20日同日付のPR、CHANGELOG、pkg.go.devを確認する
リリースv0.7.0v1未満のため、安定版前提で扱わない
API Version2025-03-01-previewPreview APIに対応したSDK生成
SDK Release Typebeta本番適用前に検証環境で確認する
SpecRepoAzure/azure-rest-api-specsREST API仕様をもとにSDKが生成されている
CommitSHAb26c3c253cff26dd05361e882dbcf1b324f27dfdどのAPI仕様から生成されたかを追跡できる
Pipeline runGo-6325102SDK生成パイプラインに紐づく更新

PR本文では、対象設定ファイルとして specification/developerhub/resource-manager/Microsoft.DevHub/DeveloperHub/tspconfig.yaml、API Versionとして 2025-03-01-preview、SDK Release Typeとして beta、SpecRepoのCommitSHAとして b26c3c253cff26dd05361e882dbcf1b324f27dfd が示されています。(GitHub)

何が変わったのか

DevHub ARM SDKがAPI Version 2025-03-01-previewに更新された

armdevhub には、version20250301Preview というAPIバージョン定数が追加されており、今回のSDKが 2025-03-01-preview を前提に生成されていることが分かります。(GitHub)

また、生成コードには「Microsoft Go Code Generator」による生成であることが記録されています。これは、古い生成物を手作業で修正する更新ではなく、API仕様に基づく再生成である点が重要です。(GitHub)

実務では、次のように考えると判断しやすくなります。

状況影響
armdevhub を使っていない直接の影響はほぼない
armdevhub を使っているが、依存バージョンを更新しない既存コードはそのまま動く可能性が高い
go get -u やDependabotで v0.7.0 に上げるコンパイルエラーやテスト失敗が起きる可能性がある
DevHubのTemplate、Workflow、ADO OAuthを自動化している新機能を使える一方、権限・認証・戻り値の確認が必要

追加された主な機能

v0.7.0 では、Template、VersionedTemplate、Azure DevOps OAuthに関するクライアントや型が追加されています。CHANGELOGでは、NewADOOAuthClientNewTemplateClientNewVersionedTemplateClientDeveloperHubServiceClient.GetADOOAuthInfo などが新機能として記載されています。(GitHub)

追加領域代表的な追加API想定される活用シーン
ADO OAuthADOOAuthClient.GetADOOAuthClient.NewListPagerAzure DevOps連携情報の取得・一覧化
TemplateTemplateClient.GetTemplateClient.NewListPagerDevHubテンプレートの取得・一覧化
VersionedTemplateVersionedTemplateClient.GetVersionedTemplateClient.Generateバージョン付きテンプレートの参照や生成
ClientFactoryNewADOOAuthClientNewTemplateClientNewVersionedTemplateClient既存のClientFactoryベース実装への統合

たとえば、既存コードで ClientFactory を使っている場合は、次のように新しいクライアントを作成できます。

cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
    return err
}

clientFactory, err := armdevhub.NewClientFactory(subscriptionID, cred, nil)
if err != nil {
    return err
}

adoClient := clientFactory.NewADOOAuthClient()
templateClient := clientFactory.NewTemplateClient()
versionedTemplateClient := clientFactory.NewVersionedTemplateClient()

armdevhub のREADMEでも、認証には azidentity.NewDefaultAzureCredential を使う例と、Client Factoryから各クライアントを作成する考え方が示されています。(Go Packages)

破壊的変更で確認すべきポイント

今回の更新で最も注意すべきなのは、追加機能よりも破壊的変更です。v0.7.0 のCHANGELOGには、型変更、enum値の削除、structやfieldの削除が明記されています。(GitHub)

変更起きやすい問題対応の目安
GitHubWorkflowProfile.DeploymentProperties の型が *DeploymentProperties から *Deployment に変更旧型を代入している箇所でコンパイルエラーDeployment を使う実装へ変更
QuickStartTemplateTypeALL が削除enum参照で未定義エラー「ALL」を前提にした分岐を見直す
DeploymentProperties structが削除struct生成・型アサーションが失敗新しい Deployment 構造に移行
ScaleProperty.NumberOfStores が削除フィールド参照でエラー新フィールド NumberOfStore を確認
ScaleTemplateRequest.ScaleProperties が削除リクエスト生成コードが失敗新フィールド ScaleRequirement の意味を確認して移行

特に NumberOfStoresNumberOfStore のような単数・複数の差は、レビューで見落としやすい箇所です。単に名前を置換するのではなく、生成されるJSON、APIの期待値、既存テストデータまで確認してください。

開発者が最初に確認すべきコマンド

依存関係の更新前に、まず現在の利用状況を確認します。

go list -m github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/devhub/armdevhub

v0.7.0 を検証する場合は、本番ブランチではなく検証用ブランチで明示的に更新します。

go get github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/devhub/[email protected]
go mod tidy
go test ./...

破壊的変更に該当するシンボルは、更新前に検索しておくと移行工数を見積もりやすくなります。

rg "DeploymentProperties|QuickStartTemplateTypeALL|NumberOfStores|ScaleProperties"

検索結果が出た場合は、該当箇所を「単純置換」で片付けないことが重要です。特にリクエスト生成、テンプレート生成、GitHub Workflow関連の処理では、API側の意味が変わっている可能性があります。

管理者が確認すべき設定

認証方式を見直す

Azure SDK for Goでは、Microsoft Entra IDを使ったトークンベース認証が推奨されています。Azure上でホストされるアプリではマネージドID、オンプレミスやローカル開発ではサービスプリンシパルや開発者資格情報を使う整理が示されています。(Microsoft Learn)

管理者は、次の点を確認してください。

確認項目確認内容
実行環境Azure上、オンプレミス、ローカル開発のどこで動くか
認証方式マネージドID、サービスプリンシパル、開発者資格情報のどれを使うか
シークレット管理クライアントシークレットをコードやリポジトリに置いていないか
テナント想定したMicrosoft Entraテナントで認証しているか
サブスクリプションIDDevHub操作対象のサブスクリプションと一致しているか

RBACのスコープを確認する

Azure RBACはAzure Resource Manager上の承認システムで、ユーザー、グループ、サービスプリンシパル、マネージドIDにロールを割り当ててアクセスを制御します。(Microsoft Learn)

DevHub関連の管理操作をSDKから実行する場合、SDKの更新だけで権限が増えるわけではありません。新しいTemplate系APIやADO OAuth系APIを使うなら、実行主体に必要な操作権限があるかを、サブスクリプション、リソースグループ、対象リソースのスコープで確認してください。

「動かないのでOwnerを付ける」は避けるべきです。まずはエラーになった操作、必要なResource ProviderのAction、既存ロールで足りるかを確認し、足りない場合のみカスタムロールを検討します。Azureの組み込みロールは、ユーザー、グループ、サービスプリンシパル、マネージドIDに割り当てられるものとして整理されています。(Microsoft Learn)

ソブリンクラウドやAzure Stackを使っている場合

armdevhub のREADMEでは、ClientOptions を使ってパブリッククラウド、ソブリンクラウド、Azure Stack向けのエンドポイントを設定できることが示されています。(Go Packages)

Azure China、Azure Government、Azure Stack Hubなどを使う環境では、SDK更新後に次を確認してください。

確認項目理由
arm.ClientOptions の指定既定のAzure Public Cloudに向いていないか確認する
認証テナントクラウド環境に合ったテナントで認証できているか確認する
API Version対応対象クラウドで 2025-03-01-preview が利用できるか確認する
ステージング検証本番と同じクラウド環境で事前テストする

展開時に失敗しやすいポイント

Preview APIとbeta SDKを本番でいきなり使う

今回のAPI Versionは 2025-03-01-preview、SDK Release Typeは beta です。さらにpkg.go.devでは、v0.7.0v1未満のモジュールとしてStable versionではない扱いです。(GitHub)

そのため、本番環境では次の順序を守るのが安全です。

手順内容
依存更新検証ブランチで v0.7.0 に固定
静的確認削除された型・フィールド・enumを検索
コンパイルgo test ./... で全パッケージを確認
結合テストDevHub、GitHub、Azure DevOps連携部分を実行
権限確認マネージドIDまたはサービスプリンシパルのRBACを確認
段階展開一部環境でログを見ながら展開
本番反映エラー率、認証失敗、APIレスポンス差分を監視

テスト用fakeの更新を見落とす

今回の生成設定には、Go向けの generate-samplesgenerate-fakes が含まれています。(GitHub)

fake パッケージを使って単体テストを書いているチームは、実クライアントだけでなくテスト用のfake serverも更新対象です。pkg.go.devのREADMEでも、fake packageはライブサービスへ接続せずに成功・失敗条件をテストするためのものと説明されています。(Go Packages)

よくある失敗は、実装コードだけを直してテスト側のfakeレスポンス型を直し忘れるケースです。新しい ADOOAuthClientTemplateClientVersionedTemplateClient を使うなら、正常系だけでなく、認証失敗、権限不足、対象テンプレートなし、ページング結果なしのケースもテストに追加してください。

自動更新ツールで意図せず上がる

DependabotやRenovateでAzure SDK for Goを自動更新している場合、v0.7.0 への更新PRが作られる可能性があります。自動マージを有効にしている環境では、beta SDKやPreview APIを含む更新を自動的に本番へ流さないよう、次のルールを設定しておくと安全です。

ルール目的
armdevhub は手動レビュー必須破壊的変更を見落とさない
v0.x 更新は自動マージしない安定版ではない更新を抑制
preview API関連はステージング必須サービス側の挙動差分を確認
go test ./... を必須チェックにするコンパイルエラーをCIで止める

移行判断の基準

すぐに v0.7.0 へ移行すべきかは、利用している機能で判断します。

利用状況判断
DevHubをSDKから使っていない対応不要
既存のWorkflow操作だけを使っている破壊的変更の影響を確認してから更新
Template一覧・取得を使いたいTemplateClient 追加により検証価値が高い
VersionedTemplate生成を使いたいVersionedTemplateClient.Generate を検証する
Azure DevOps OAuth連携を扱いたいADOOAuthClientGetADOOAuthInfo を確認する
本番環境で安定性を最優先したい急がず検証環境で評価する

今回の更新は「全員が急いで適用すべきセキュリティ修正」というより、DevHubのPreview APIに合わせてGo SDKの対応範囲を広げる更新です。新機能が必要ない場合は、既存バージョンを維持しつつ、移行時期を計画するのが現実的です。

確認チェックリスト

移行前に、次の順番で確認してください。

チェック確認内容
依存関係armdevhub の現在バージョンを確認したか
破壊的変更削除された型・enum・フィールドを検索したか
新機能ADO OAuth、Template、VersionedTemplateを使う必要があるか
認証マネージドIDまたはサービスプリンシパルで動作するか
RBAC必要最小限のロールで操作できるか
クラウド環境Azure Public以外の環境でエンドポイント設定を確認したか
テストfake、ページング、失敗系テストを更新したか
展開ステージングでPreview APIの挙動を確認したか
監視認証失敗、権限不足、APIレスポンス変化を検知できるか

まとめ

今回のAzure SDK documentation updateは、Azure SDK for Goの armdevhubv0.7.0 として更新し、DevHubの 2025-03-01-preview APIに対応させるものです。追加機能として、ADO OAuth、Template、VersionedTemplate関連のクライアントや型が増えています。一方で、DeploymentPropertiesQuickStartTemplateTypeALLNumberOfStoresScaleProperties などに関する破壊的変更もあります。(GitHub)

開発者は、まず現在の依存バージョンを確認し、削除されたシンボルを検索してから検証ブランチで v0.7.0 を試してください。管理者は、SDK更新そのものではなく、新しい操作を実行する主体の認証方式、RBAC、クラウドエンドポイント、ステージング検証を確認することが重要です。

この記事を書いた人

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

コメント

コメントする

目次