この記事では、Azure Operator Nexus で Commit Workflow Version 2 (Commit V2) を使用する方法について説明します。 これは、サポートされているリソース間で、変更を安全にステージングしたり、確認したり、必要な変更をコミットしたり、不要なものを破棄したりするのに役立ちます。
[前提条件]
ランタイム バージョン: コミット ワークフロー v2 には
5.0.1以降が必要です。Azure CLI のバージョン
8.0.0b3以降がインストールされているNetwork Fabric が
Provisioned状態であり、構成状態がSucceededされている必要があります。ファブリックと影響を受けるすべてのリソースには、管理者の状態が
Enabledに設定されている必要があります。オプションの検証手順を使用するには、 BYOS (Bring Your Own Storage) がファブリックに構成されている必要があります。
コミット ワークフロー v2 の概要
V2 をコミットすると、ドラフト状態でサポートされているリソースを更新したり、構成の変更を検証したり、構成の違いを表示したり、変更を明示的にコミットまたは破棄したりできます。 これにより、複雑なネットワーク ファブリック操作のアトミック性、運用制御、およびユーザー エクスペリエンスの向上が保証されます。
コミット V2 の利点
コミット操作の高速化: 構成変更を適用する時間を短縮します。
保留中の構成を確認する: コミットする前に、構成の違いを表示して検証します。
コミット バッチを破棄する: 必要に応じて、ステージングされた変更を元に戻します。
ロック構成: ステージングおよびレビュー中に競合する変更を防ぎます。
高度なシナリオの基礎: 将来のリリースで A/B コミット戦略とマルチユーザー セッションを有効にします。
ワークフローの概要
Commit V2 ワークフローには、次の手順が含まれています。
PATCH 操作を使用して、サポートされているリソースをドラフト モードで更新します。
ファブリック構成をロックして、ステージングされた変更を確認または破棄します。
必要に応じて、各デバイスの構成の違いを表示します。
変更をコミットするか破棄します。
コミット/破棄後、ファブリックとすべての関連リソースはプロビジョニング済み状態に戻ります。
手順 1: ドラフト モードでリソースを更新する
リソースは、明示的にコミットされるまで、リソースをドラフト (ConfigurationState: Accepted) のままにする PATCH 操作を使用して更新できます。 これらの変更は、コミットされるまでデータ プレーンには適用されません。
サンプル シナリオ
新しいルート ポリシーを作成し、内部ネットワーク 1 にアタッチする
別の 内部ネットワークを作成する 2
これらの変更はすべて バッチ処理されますが、まだデバイスには 適用されません 。
手順 2: ファブリック構成をロックする
構成の相違を表示したり、コミットを破棄したりする前に、ファブリックをコンフィギュレーション モードでロックする必要があります。
構成をロックして、すべての目的の更新が完了したことを通知します。 このロックの後、ロックを解除するまで、ファブリック関連のリソースに 対してそれ以上の更新 を行う必要はありません。
Azure CLI コマンド
az networkfabric fabric lock-fabric \
--action Lock \
--lock-type Configuration \
--network-fabric-name "example-fabric" \
--resource-group "example-rg"
注
ファブリック構成の状態が [受け入れ済み] であることを確認します。
関連付けられていない (コミットされていない) 操作が原因で、Fabric がメンテナンス中ではありません。
Network Fabric のバージョンは >= 5.0.1 です。
ファブリックは ProvisioningState: Succeeded にあります。
手順 3: 更新プログラムを検証する (省略可能ですが推奨)
コミット V2 が提供するもう 1 つの重要な機能は、保留中のコミット構成と各デバイス (ネットワーク パケット ブローカー (NPB) デバイスを除く) の最後にコミットされた構成を表示して、ユーザーがそれらを比較して目的の構成を検証できるようにすることです。 不一致がある場合、ユーザーはファブリックのロックを解除し、必要な変更を行い、ファブリックをロックし、保留中のコミットを確認し、コミット操作を行うことができます。
view-device-configuration事後アクションを使用して構成を検証します。 この手順では、予想される構成結果に関する分析情報を提供します。
Important
ファブリックはコンフィギュレーション モードでロックされている必要があります。
BYOS は Network Fabric で構成する必要があります。
Azure CLI コマンド
az networkfabric fabric view-device-configuration \
--network-fabric-name "example-fabric"\
--resource-group "example-rg"
設定の差分の場所
構成の差分ファイルは、お客様が指定したストレージ アカウントに次の形式で格納されます。
https://<storageAccountName>.blob.core.windows.net/<NF_name>/CommitOperations/DeviceConfigDiff/<CommitBatchId>
API バージョンが 2024-06-15-preview 以上のファブリック リソースに対して GET 要求を実行することで、現在の CommitBatchId を取得できます。
手順 3a: コミット バッチを破棄する (省略可能)
コミット破棄は、コミットが実行される前に許可される、NetworkFabric に対する POST アクションです。 この操作により、ユーザーは特定のコミット セッションに対する PATCH 操作を使用して、リソースに加えられた変更を元に戻すことができます。 ViewDeviceConfiguration を使用した検証中に問題が見つかった場合、ユーザーは保留中の構成更新プログラムを破棄することを選択できます。 この操作により、ARM リソースの状態が最新の正常な構成に復元され、ファブリックの状態が [承認済み] および [ロック済み] から [成功] にリセットされます。
注
CommitBatchId を取得するには、API バージョン 2024-06-15-preview 以上のファブリック リソースに対して GET 要求を実行します。
注
失敗したコミットの後に破棄操作をトリガーしないことをお勧めします。これにより、Azure Resource Manager (ARM) とデバイスの間で構成が不整合になる可能性があるためです。 場合によっては、ARM とデバイス間で構成状態を調整するためにデバイスの更新が必要になる場合があります。
Important
Network Fabric リソースがユーザー割り当てマネージド ID (UAMI) に関連付けられている場合 (たとえば、カスタマー マネージド ストレージ アカウントを使用する場合)、Microsoft.ManagedNetworkFabric リソース プロバイダーが UAMI で マネージド ID オペレーター (MIO) ロールを 持っていることを確認する必要があります。 このアクセス許可がないと、コミット破棄操作は失敗します。 この要件は、Network Fabric が UAMI にリンクされている場合にのみ適用されます。 UAMI に関連付けられていない Network Fabric には、コミット破棄のための追加のアクセス許可は必要ありません。
az networkfabric fabric discard-commit-batch \
--resource-group "example-rg" \
--network-fabric-name "example-fabric"
--commit-batch-id "example-commit-batch-id"
注
内部/外部ネットワーク リソースが管理者状態に移行: 無効および構成状態: 拒否。
リソースは削除されません。必要に応じて、ユーザーは手動でリソースを削除する必要があります。
ネットワーク モニターの処理には、追加の制約が含まれます (無効になっているモニターは拒否された状態に戻ります)。
その他の更新を行う必要がありますか?
構成のロックを解除してさらに変更を加え、ロック/検証/コミットの手順を繰り返します。
ロック解除の例
az networkfabric fabric lock-fabric \
--action Unlock \
--lock-type Configuration \
--network-fabric-name "example-fabric" \
--resource-group "example-rg"
手順 4: コミット構成 (必須)
バッチ処理された変更を関連するすべてのファブリック デバイスに適用するように構成をコミットします。
Azure CLI コマンド
az networkfabric fabric commit-configuration \
--resource-group "example-rg" \
--resource-name "example-fabric"
この操作では、ステータス:
Succeeded,InProgress, またはFailedが返されます。CLI ポーリングまたは Azure アクティビティ ログを使用して進行状況を監視する
Important
- このワークフローは、ファブリックがプロビジョニング済み状態で、管理者の状態が有効になっている場合にのみ適用されます。
- ロックはコミット前に必須です。 コミットを先にロックしないと続行できません。
-
ロールバックはサポートされていません 。正しくない構成を更新して再コミットする必要があります。
- このワークフローの外部 (タグや切断されたリソースなど) の更新では、 コミットは必要ありません。