Azureの「Front Door」をPowerShellで参照また操作しようとしても、期待した結果にならない場合、それは対象のFront Doorの「種類」とPowerShellコマンドレットとが食い違っているのかもしれない。新旧2種類のFront DoorとPowerShell/Azure CLI/リソーステンプレートについて整理する。
対象:Azure Front Door、PowerShell、Azure CLI、リソーステンプレート
Tech TIPS「【Azure】Front Doorのトラフィック切り替えをPowerShellで自動化する」でも説明しているように、Azureの「Front Door」は他のリソースと同様、PowerShellでコントロール可能だ。
しかし、「FrontDoor」という名称が含まれるPowerShellコマンドレットをいくら実行しても、想定通りにFront Doorを参照/操作できない場合がある。またAzure CLIやリソーステンプレートでも似たようなトラブルが生じることがある。
本Tech TIPSでは、こうした現象が生じる原因の一つについて説明したい。シンプルに表現するなら、Front Doorの種類に応じて正しいPowerShellコマンドレットやAzure CLIコマンドライン、リソーステンプレートを選ばなければならない、ということだ。
Front Doorを正しく参照/操作できない原因としては、サブスクリプションやリソースグループの指定が間違っている、権限が足りないなど複数の原因が考えられる。以下の説明の通りに対処すれば必ずトラブルを解消できるとは限らない、という点には留意していただきたい。
Azure Front Doorをリリース時期およびアーキテクチャで分類すると、次の2つに大別できる。
前者は「クラシック」という名が示す通り古いバージョンで、Front Doorとして最初にリリースされたバージョンでもある。2027年3月いっぱいで廃止される予定だ(詳細はMicrosoft Learn「Azure Front Door (クラシック) の廃止に関する FAQ」参照)。
一方、後者の「Standard」「Premium」は、クラシックより後の2022年5月にリリースされたバージョンだ。今後を含むFront Doorの主流はこちらと言える。
以下ではクラシックを「旧Front Door」、Standard/Premiumを「新Front Door」と呼ぶことにする。
新旧Front DoorはどちらもPowerShellコマンドレットで参照/操作できる。しかし、コマンドレットそのものは全く異なるし、必要なPowerShellのモジュールも別々だ。下表では、新Front Doorのプロファイルに相当する部分を参照/操作するためのコマンドレットをリストアップしてみた。
Front Doorクラシック | Front Door Standard/Premium | |
---|---|---|
モジュール名 | Az.FrontDoor | Az.Cdn |
取得のコマンドレット | Get-AzFrontDoor | Get-AzFrontDoorCdnProfile |
新規作成のコマンドレット | New-AzFrontDoor | New-AzFrontDoorCdnProfile |
更新のコマンドレット | Set-AzFrontDoor | Update-AzFrontDoorCdnProfile |
削除のコマンドレット | Remove-AzFrontDoor | Remove-AzFrontDoorCdnProfile |
新旧Front DoorのPowerShellコマンドレットの違い 新Front Doorのプロファイルに相当する部分を参照/操作するためのコマンドレットをリストアップしている(これが全てではない)。 |
モジュール名については、「Front Door」という名前で探すと、旧Front Door向けである「Az.FrontDoor」の情報にたどり着きやすい。しかし、今後も主流である新Front Doorで使うには「Az.Cdn」の方を選ばなければならない。
コマンドレット名については、「Get」「New」といった動詞とハイフンの後に続く文字列の先頭で、新旧Front Doorのどちらが対象なのか判別できる。「AzFrontDoorCdn」から始まるなら新Front Door向けである。一方、「AzFrontDoor」から始まり、かつ「Cdn」と続かずに別の文字列が連なるなら旧Front Doorを対象としている。
コマンドレットが異なれば、当然ながら指定すべきオプションなども変わってくる。そもそも新旧Front Doorではアーキテクチャが大きく異なるため、新旧のコマンドレットが1対1に対応していないことも多い。そのため、旧Front DoorをPowerShellで操作する解説記事を読んでも、新Front Doorではほぼ役に立たないので注意が必要だ。
新Front Door(Standard/Premium)のPowerShellコマンドレットの詳細については、Microsoft Learnのレファレンス「Az.Cdn」を参照していただきたい。ただし、このページの一覧表には、後述の「Azure CDN」という別のサービス向けのPowerShellコマンドレットも含まれているので、混同しないように注意が必要だ。
Azure CLIでFront Doorを参照/操作する場合も、新旧でそれぞれ別々のコマンドラインを指定しなければならない。下表では、新Front Doorのプロファイルに相当する部分を参照/操作するためのAzure CLIコマンドラインをリストアップしてみた。
Front Doorクラシック | Front Door Standard/Premium | |
---|---|---|
ベースコマンド名 | az network front-door | az afd |
取得のコマンドライン | az network front-door show | az afd profile show |
一覧取得のコマンドライン | az network front-door list | az afd profile list |
新規作成のコマンドライン | az network front-door create | az afd profile create |
更新のコマンドライン | az network front-door update | az afd profile update |
削除のコマンドライン | az network front-door delete | az afd profile delete |
待機のコマンドライン | az network front-door wait | az afd profile wait |
新旧Front DoorのAzure CLIコマンドラインの違い 新Front Doorのプロファイルに相当する部分を参照/操作するためのコマンドラインをリストアップしている(これが全てではない)。 |
上表のように「az network front-door」から始まるなら旧Front Door向け、「az afd」から始まるなら新Front Door向けと区別できる。PowerShellと同様、「Front Door」という名前に注目して検索すると、「az network front-door」すなわち旧Front Door向けの解説にたどり着いてしまう危険性があるので注意が必要だ。
新Front Door(Standard/Premium)のAzure CLIの詳細については、Microsoft Learnのレファレンス「az afd」を参照していただきたい。
新旧Front Doorのデプロイ時に用意すべきリソーステンプレートも、新旧で全く異なる。例えばリソースタイプは下表のように別々だ。
Front Doorクラシック | Front Door Standard/Premium | |
---|---|---|
プロファイル(相当) | Microsoft.Network/frontDoors | Microsoft.Cdn/profiles |
エンドポイント(相当) | Microsoft.Network/frontDoors/ frontendEndpoints |
Microsoft.Cdn/profiles/ afdEndpoints |
新旧Front Doorのリソースタイプの違い 新Front Doorのプロファイルおよびエンドポイントに相当するリソースだけをピックアップしている。 |
リソースタイプについても、「frontDoors」が含まれる方が廃止予定の旧Front Door向けである。一方、「Front」「Door」がなく、関係のなさそうな「Cdn」が含まれる方が今後も主流の新Front Door向けだ。勘違いしないように注意したい。
新Front Door(Standard/Premium)のリソーステンプレートの詳細については、Microsoft Learnのレファレンス「Microsoft.Cdn Profile」を参照していただきたい。
Azureには、Front Doorとよく似た「Azure CDN」というサービスが存在する。特に新Front DoorとAzure CDNは、Microsoft Learnの「Azure Front Door と Azure CDN サービスの比較」にある通り、若干の相違はあるが、全体的には似ているサービスだ。
こうした背景からか、新Front DoorとAzure CDNの間では、PowerShellコマンドレットやリソーステンプレートを混同しやすい。
PowerShellの場合、新Front Doorは「*-AzFrontDoorCdn*」、Azure CDNは「*-AzCdn*」というように、別々のPowerShellコマンドレットがそれぞれ割り当てられている。その一方で、両者ともAz.Cdnモジュールでサポートされている。そのせいなのか、前述のようにMicrosoft Learnのリファレンスページの一覧表では、両者のコマンドレットが混在して記されていることから、実に分かりにくい。
リソーステンプレートでは、新Front DoorとAzure CDNはほとんど同じように扱われる。例えばプロファイルのリソースタイプはどちらも「Microsoft.Cdn/profiles」で共通だ。SKUに「Standard_AzureFrontDoor」「Premium_AzureFrontDoor」を指定すると新Front Doorに、「Standard_Microsoft」「Premium_Verizon」などを選ぶとAzure CDNになる。
PowerShellコマンドレットもリソーステンプレートも、サービス名やマーケティング上の区分けより、どちらかといえばアーキテクチャによって分類されているようだ。その点を踏まえて、正しくコードを選択するように注意したい。
■関連リンク
Copyright© Digital Advantage Corp. All Rights Reserved.