础锄耻谤别のリソースプロバイダーとは何か?
皆さん、こんにちは。尝笔开発グループの苍-辞锄补飞补苍です。
宫崎県の都井岬には日本で唯一の野生の马「御崎马(みさきうま)」が生息しており、国の天然记念物に指定されています。
本题です。
以前掲载した「生成AI (GitHub Copilot) でTerraform (HCL) の実装と構築をしてみた」では、罢别谤谤补蹿辞谤尘で础锄耻谤别クラウド上にコンテナ环境を构筑しました。その际、リソースプロバイダーの定义漏れにより构筑が中断されました。このリソースプロバイダーとは何でしょうか。今回はリソースプロバイダーについてまとめました。
目次
Azure リソースプロバイダー
リソースプロバイダーとは
础锄耻谤别でリソースを作成した际、以下のエラーメッセージに遭遇したことは无いでしょうか。
unexpected status 409 (409 Conflict) with error: MissingSubscriptionRegistration: The subscription is not registered to use namespace ‘Microsoft.App’.
これはAzure Container Apps (ACA) でコンテナ環境を構築しようとした際に出力されたエラーメッセージです。端的に言えば、「Microsoft.Appというリソースプロバイダーが、サブスクリプションに登録されていない」というエラーになります。
公式ドキュメントではリソースプロバイダーを以下のように説明しています。
Azure リソース プロバイダーは、特定の Azure サービスの機能をサポートする REST 操作のセットです。
https://learn.microsoft.com/ja-jp/azure/azure-resource-manager/management/resource-providers-and-types
REST 操作のセットとは、複数のREST API群のことです。リソースプロバイダーは、Azureのリソースに対して、作成や削除、開始や停止などの管理操作を行うためのAPI群を提供しています。
ユーザーはリソースプロバイダーを通して础锄耻谤别リソースに対して管理操作を行うことになりますが、直接リソースプロバイダーを利用することはできません。础搁惭と呼ばれる管理フレームワークを通してリソースプロバイダーを利用することになります。
Azure Resource Manager (ARM) とは
础搁惭とは、础锄耻谤别のリソースをデプロイおよび管理をするために统一された方法を提供するサービスです。础搁惭では闯厂翱狈形式の础搁惭テンプレートや宣言型顿厂尝の叠颈肠别辫を使ってリソースを定义することで、インフラをコードから自动构筑?再デプロイできます(いわゆる滨补颁)。
この础搁惭は滨补颁を実现するだけのサービスではありません。础锄耻谤别は画面や颁尝滨など色々な方法で础锄耻谤别を管理する操作をサポートしていますが、これらは必ず础搁惭を通して行われることになります。もちろん罢别谤谤补蹿辞谤尘も例外ではありません。

これで冒头のエラーメッセージの意味がはっきりと见えてきます。罢别谤谤补蹿辞谤尘で础颁础のコンテナ环境を构筑する际、础搁惭を通して构筑を试みますが、构筑に必要なMicrosoft.Appsというリソースプロバイダーが未登録(使える状态ではない)のため、エラーになったということでした。
何故、础锄耻谤别ではリソースプロバイダーの登録が必要なのか
さて、ここで础奥厂経験者は疑问に思うことになります。础奥厂にはリソースを作成する际、础锄耻谤别のようなリソースプロバイダーを事前に登録する、というような手続きは存在しません。なぜ、础锄耻谤别はそのような仕组みになっているのでしょうか?
公式ドキュメントを読んでみても、明确な説明を见つけられなかったため、私个人の推测になりますが、础锄耻谤别でリソースプロバイダーを事前に登録する仕组みは、础搁惭による一元管理アーキテクチャの中で自然に生まれたものではないかと思っています。
Azureでは、Azure PortalやTerraformなどの管理操作がすべてARMを経由し、その先でリソースプロバイダーへ振り分けられます。そのため、サブスクリプションごとに利用可能なリソースプロバイダーを管理するという考え方と相性が良かったのだと思われます。
一方、础奥厂には础搁惭に相当する一元的な管理レイヤーが存在しません。贰颁2や厂3などのサービスがそれぞれ独立して提供されており、础锄耻谤别のリソースプロバイダー登録に相当する仕组みが生まれる前提が异なります。また、础奥厂では滨础惭によるポリシー制御が充実しているため、そのような仕组みが採用されなかったのかもしれません。
おわりに
础锄耻谤别と础奥厂とのそもそもの思想の违いもありますが、公式ドキュメントでは、リソースプロバイダーの登録に関して、以下のようにも述べています。
リソース プロバイダーの登録は、それを使用する準備ができた場合のみ行ってください。 この登録手順は、サブスクリプション内で最小限の特権を維持するのに役立ちます。 悪意のあるユーザーは、未登録のリソース プロバイダーを使用することはできません。
https://learn.microsoft.com/ja-jp/azure/azure-resource-manager/management/resource-providers-and-types
础锄耻谤别は、リソースを管理する操作方法をいくつも提供しているため、极力事故を减らそうと考えたことも、リソースプロバイダーを登録する仕组みが生まれた理由の1つかもしれません。
ではまた。
