<目次>
(1) Azureで「subscription is not registered to use namespace ‘Microsoft.EventGrid’.」エラーが出た時の原因と対処
(1-1) 事象
(1-2) 原因
(1-3) 対策
(1-4) 参考:リソース プロバイダーとは?
(1-5) 補足:PowerShellコマンド
(1) Azureで「subscription is not registered to use namespace ‘Microsoft.EventGrid’.」エラーが出た時の原因と対処
(1-1) 事象
Azure Blob Storageで「イベント」ブレードから新規のイベントを作成しようとした際に、下記のエラーが発生した。
(エラーメッセージ)
システム トピックの作成が次のエラーで失敗しました:The subscription is not registered to use namespace 'Microsoft.EventGrid'. See https://aka.ms/rps-not-found for how to register subscriptions. イベントサブスクリプションは作成されません。
●再現手順
・①任意の「ストレージアカウント」の「イベント」ブレードを開き「イベントサブスクリプション」を押下
(図111)
↓
・②必要項目を入力して「作成」を押下
(図112)
↓
・③当該エラーが発生
(図113)
(1-2) 原因
・エラーの内容としては、使おうとしているサービスが「Azureのサブスクリプション」に「登録されていない」事を意味しています。
・基本的に、新しいサービス(≒リソースやブレード機能)を利用する際には、このAzureサブスクリプションにサービスを「登録する」というステップが必要となるケースがあります。
・もしも、それをせずに利用できている場合は、デフォルトで登録されていたか、他の誰かが先に登録していた可能性があります。
・ちなみに、リソース・プロバイダの登録は「サブスクリプション単位」で管理されています。
・ファイアウォールのポートを全て解放しないのと同様で、基本的に必要な部分のみを登録するのが鉄則です。
(1-3) 対策
・①サブスクリプションを開いて「リソース プロバイダー」ブレードを選択
(図131)
↓
・②有効化したい対象を選択して「登録」ボタンを押下。
(図132)
↓
・③「更新」ボタンを押下して、登録完了されたことを確認
(図133)
(1-4) 参考:リソース プロバイダーとは?
簡単にいうと、アドインの管理者が実装するRestAPI Contract(※注1)のことです。これらのエンドポイントは信頼度が高く、Azure側にてユーザーに代わり供給や削除をする事が出来ます。
また、リソース プロバイダーが提供する機能は、Azure管理ポータル上でも各種操作にて利用されています。
例えば、Azure Functionsの「Event」の登録時にWebフックを指定したイベントを登録する際に「EventGrid」というリソース・プロバイダを使用します。
(※注1)APIのドキュメントや、提供者・利用者間で合意した仕様
(1-5) 補足:PowerShellコマンド
リソース プロバイダーの登録はPowerShellコマンドからも実行可能です。この時「Az.Resources」のPowerShellモジュールが必要です。
・⓪Azureとの接続
(構文)
Connect-AzAccount
Get-AzSubscription -SubscriptionId $[サブスクリプションID] | Set-AzContext
・①登録
(構文)
Register-AzResourceProvider -ProviderNamespace $[Azureプロバイダ名]
(例)
Register-AzResourceProvider -ProviderNamespace Microsoft.Network
・②登録解除
(構文)
Unregister-AzResourceProvider -ProviderNamespace $[Azureプロバイダ名]
(例)
Unregister-AzResourceProvider -ProviderNamespace Microsoft.Network