Azure リソース プロバイダーと種類
リソースをデプロイするときに、リソース プロバイダーと種類に関する情報を取得しなければならないケースは少なくありません。 たとえば、キーとシークレットを格納するには、Microsoft.KeyVault リソース プロバイダーを使用します。 このリソース プロバイダーには、キー コンテナーを作成する vaults というリソースの種類が用意されています。
リソースの種類を表す名前は、{resource-provider}/{resource-type} のような形式になります。 キー コンテナーのリソースの種類は Microsoft.KeyVault/vaults です。
この記事では、次のことについて説明します。
- Azure のすべてのリソース プロバイダーを表示する
- リソース プロバイダーの登録ステータスを確認する
- リソース プロバイダーを登録する
- リソース プロバイダーのリソースの種類を表示する
- リソースの種類の有効な場所を表示する
- リソースの種類の有効な API のバージョンを表示する
これらの手順は、Azure Portal、Azure PowerShell、または Azure CLI を介して実行できます。
リソース プロバイダーを Azure サービスにマップされるリストについては、「Resource providers for Azure services」 (Azure サービスのリソースプロバイダー) を参照してください。
リソース プロバイダーの登録
リソース プロバイダーを使用する前に、Azure サブスクリプションにリソース プロバイダーを登録する必要があります。 登録により、サブスクリプションがリソース プロバイダーと連携するように構成されます。
重要
リソース プロバイダーの登録は、それを使用する準備ができた場合のみ行ってください。 登録手順により、サブスクリプション内で最小限の特権を維持できます。 悪意のあるユーザーは、登録されていないリソース プロバイダーを使用することはできません。
一部のリソース プロバイダーが既定で登録されています。 既定で登録されているリソース プロバイダーの一覧については、「Azure サービスのリソース プロバイダー」を参照してください。
その他のリソース プロバイダーは、特定のアクションを実行すると自動的に登録されます。 ポータルを使用してリソースを作成すると、通常、リソース プロバイダーが自動的に登録されます。 Azure Resource Manager テンプレートまたは Bicep ファイルをデプロイすると、テンプレートに定義されているリソース プロバイダーが自動的に登録されます。 ただし、テンプレート内のリソースによって、テンプレート内にないサポート リソース (監視やセキュリティ リソースなど) を作成する場合は、これらのリソース プロバイダーを手動で登録する必要があります。
他のシナリオでは、場合によっては、リソース プロバイダーを手動で登録する必要があります。
重要
アプリケーション コードによって、登録中状態にあるリソース プロバイダーのリソースの作成がブロックされるべきではありません。 リソース プロバイダーを登録すると、サポートされているリージョンごとに操作が個別に実行されます。 リージョンにリソースを作成する際は、そのリージョンでのみ登録を完了する必要があります。 登録中の状態にあるリソース プロバイダーがブロックされないようにすることで、すべてのリージョンの完了まで待機するよりもはるかに早くアプリケーションを続行できます。
リソース プロバイダーの /register/action
操作を実行するためのアクセス許可が必要です。 このアクセス許可は、共同作成者ロールと所有者ロールに含まれます。
サブスクリプション内に特定のリソース プロバイダーからのリソースの種類がまだある場合、そのリソース プロバイダーの登録を解除することはできません。
Azure portal
リソース プロバイダーの登録
すべてのリソース プロバイダー、およびサブスクリプションの登録状態を表示するには、以下を実行します。
Azure portal にサインインします。
Azure portal のメニューでサブスクリプションを検索します。 使用可能なオプションから、それを選択します。
表示するサブスクリプションを選択します。
左側のメニューの [設定] で、 [リソース プロバイダー] を選択します。
登録するリソース プロバイダーを探し、 [登録] を選択します。 サブスクリプションで最小限の特権を維持するには、使用する準備ができたリソース プロバイダーのみ登録します。
重要
前述のように、登録中状態にあるリソース プロバイダーのリソースの作成をブロックしないでください。 登録中の状態にあるリソース プロバイダーがブロックされないようにすることで、すべてのリージョンの完了まで待機するよりもはるかに早くアプリケーションを続行できます。
リソース プロバイダーの表示
特定のリソース プロバイダーの情報を表示するには、以下を実行します。
Azure portal にサインインします。
Azure portal のメニューで、[すべてのサービス] を選択します。
[すべてのサービス] ボックスで "リソース エクスプ ローラー (resource explorer)" と入力し、[リソース エクスプ ローラー] を選択します。
右矢印を選択して [プロバイダー] を展開します。
表示するリソース プロバイダーとリソースの種類を展開します。
リソース マネージャーはすべてのリージョンでサポートされていますが、デプロイするリソースはすべてのリージョンではサポートされていない場合があります。 また、サブスクリプションでの制限により、リソースをサポートする一部のリージョンを使用できない場合があります。 リソース エクスプローラーでは、リソースの種類の有効な場所が表示されます。
API バージョンは、リリース プロバイダーがリリースする REST API のバージョンに一致します。 リソース プロバイダーは、新しい機能を有効にすると、REST API の新しいバージョンをリリースします。 リソース エクスプローラーでは、リソースの種類の有効 API のバージョンが表示されます。
Azure PowerShell
Azure ですべてのリソース プロバイダーおよびサブスクリプションの登録状態を表示するには、次のコマンドを使用します。
Get-AzResourceProvider -ListAvailable | Select-Object ProviderNamespace, RegistrationState
このコマンドによって次の情報が返されます。
ProviderNamespace RegistrationState
-------------------------------- ------------------
Microsoft.ClassicCompute Registered
Microsoft.ClassicNetwork Registered
Microsoft.ClassicStorage Registered
Microsoft.CognitiveServices Registered
...
サブスクリプションに登録されているリソース プロバイダーをすべて確認するには、次のコマンドを使用します。
Get-AzResourceProvider -ListAvailable | Where-Object RegistrationState -eq "Registered" | Select-Object ProviderNamespace, RegistrationState | Sort-Object ProviderNamespace
サブスクリプションで最小限の特権を維持するには、使用する準備ができたリソース プロバイダーのみ登録します。 リソース プロバイダーを登録するには、次のコマンドを使用します。
Register-AzResourceProvider -ProviderNamespace Microsoft.Batch
このコマンドによって次の情報が返されます。
ProviderNamespace : Microsoft.Batch
RegistrationState : Registering
ResourceTypes : {batchAccounts, operations, locations, locations/quotas}
Locations : {West Europe, East US, East US 2, West US...}
重要
前述のように、登録中状態にあるリソース プロバイダーのリソースの作成をブロックしないでください。 登録中の状態にあるリソース プロバイダーがブロックされないようにすることで、すべてのリージョンの完了まで待機するよりもはるかに早くアプリケーションを続行できます。
特定のリソース プロバイダーの情報を表示するには、次のコマンドを使用します。
Get-AzResourceProvider -ProviderNamespace Microsoft.Batch
このコマンドによって次の情報が返されます。
{ProviderNamespace : Microsoft.Batch
RegistrationState : Registered
ResourceTypes : {batchAccounts}
Locations : {West Europe, East US, East US 2, West US...}
...
リソース プロバイダーのリソースの種類を表示するには、次のコマンドを使用します。
(Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes.ResourceTypeName
このコマンドによって次の情報が返されます。
batchAccounts
operations
locations
locations/quotas
API バージョンは、リリース プロバイダーがリリースする REST API のバージョンに一致します。 リソース プロバイダーは、新しい機能を有効にすると、REST API の新しいバージョンをリリースします。
リソースの種類の使用可能な API バージョンを取得するには、次のコマンドを使用します。
((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes | Where-Object ResourceTypeName -eq batchAccounts).ApiVersions
このコマンドによって次の情報が返されます。
2017-05-01
2017-01-01
2015-12-01
2015-09-01
2015-07-01
リソース マネージャーはすべてのリージョンでサポートされていますが、デプロイするリソースはすべてのリージョンではサポートされていない場合があります。 また、サブスクリプションでの制限により、リソースをサポートする一部のリージョンを使用できない場合があります。
リソースの種類のサポートされている場所を取得するには、次のコマンドを使用します。
((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes | Where-Object ResourceTypeName -eq batchAccounts).Locations
このコマンドによって次の情報が返されます。
West Europe
East US
East US 2
West US
...
Azure CLI
Azure ですべてのリソース プロバイダーおよびサブスクリプションの登録状態を表示するには、次のコマンドを使用します。
az provider list --query "[].{Provider:namespace, Status:registrationState}" --out table
このコマンドによって次の情報が返されます。
Provider Status
-------------------------------- ----------------
Microsoft.ClassicCompute Registered
Microsoft.ClassicNetwork Registered
Microsoft.ClassicStorage Registered
Microsoft.CognitiveServices Registered
...
サブスクリプションに登録されているリソース プロバイダーをすべて確認するには、次のコマンドを使用します。
az provider list --query "sort_by([?registrationState=='Registered'].{Provider:namespace, Status:registrationState}, &Provider)" --out table
サブスクリプションで最小限の特権を維持するには、使用する準備ができたリソース プロバイダーのみ登録します。 リソース プロバイダーを登録するには、次のコマンドを使用します。
az provider register --namespace Microsoft.Batch
登録が進行中であることを示すメッセージが返されます。
特定のリソース プロバイダーの情報を表示するには、次のコマンドを使用します。
az provider show --namespace Microsoft.Batch
このコマンドによって次の情報が返されます。
{
"id": "/subscriptions/####-####/providers/Microsoft.Batch",
"namespace": "Microsoft.Batch",
"registrationsState": "Registering",
"resourceTypes:" [
...
]
}
重要
前述のように、登録中状態にあるリソース プロバイダーのリソースの作成をブロックしないでください。 登録中の状態にあるリソース プロバイダーがブロックされないようにすることで、すべてのリージョンの完了まで待機するよりもはるかに早くアプリケーションを続行できます。
リソース プロバイダーのリソースの種類を表示するには、次のコマンドを使用します。
az provider show --namespace Microsoft.Batch --query "resourceTypes[*].resourceType" --out table
このコマンドによって次の情報が返されます。
Result
---------------
batchAccounts
operations
locations
locations/quotas
API バージョンは、リリース プロバイダーがリリースする REST API のバージョンに一致します。 リソース プロバイダーは、新しい機能を有効にすると、REST API の新しいバージョンをリリースします。
リソースの種類の使用可能な API バージョンを取得するには、次のコマンドを使用します。
az provider show --namespace Microsoft.Batch --query "resourceTypes[?resourceType=='batchAccounts'].apiVersions | [0]" --out table
このコマンドによって次の情報が返されます。
Result
---------------
2017-05-01
2017-01-01
2015-12-01
2015-09-01
2015-07-01
リソース マネージャーはすべてのリージョンでサポートされていますが、デプロイするリソースはすべてのリージョンではサポートされていない場合があります。 また、サブスクリプションでの制限により、リソースをサポートする一部のリージョンを使用できない場合があります。
リソースの種類のサポートされている場所を取得するには、次のコマンドを使用します。
az provider show --namespace Microsoft.Batch --query "resourceTypes[?resourceType=='batchAccounts'].locations | [0]" --out table
このコマンドによって次の情報が返されます。
Result
---------------
West Europe
East US
East US 2
West US
...
次のステップ
- リソース マネージャーのテンプレートの作成の詳細については、 Azure リソース マネージャーのテンプレートの作成に関するページを参照してください。
- リソース プロバイダーのテンプレートのスキーマを表示するには、「テンプレート リファレンス」を参照してください。
- リソース プロバイダーを Azure サービスにマップされるリストについては、「Resource providers for Azure services」 (Azure サービスのリソースプロバイダー) を参照してください。
- リソース プロバイダーの操作を表示するには、「Azure REST API」を参照してください。