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

リソース プロバイダーの登録

すべてのリソース プロバイダー、およびサブスクリプションの登録状態を表示するには、以下を実行します。

  1. Azure portal にサインインします。

  2. Azure portal のメニューで サブスクリプション を検索します。 使用可能なオプションから、それを選択します。

    サブスクリプションの検索

  3. 表示するサブスクリプションを選択します。

    サブスクリプションの選択

  4. 左側のメニューの [設定] で、 [リソース プロバイダー] を選択します。

    リソース プロバイダーの選択

  5. 登録するリソース プロバイダーを探し、 [登録] を選択します。 サブスクリプションで最小限の特権を維持するには、使用する準備ができたリソース プロバイダーのみ登録します。

    リソース プロバイダーの登録

重要

前述のように登録中 状態にあるリソース プロバイダーのリソースの作成をブロックしないでください。 登録中の状態にあるリソース プロバイダーがブロックされないようにすることで、すべてのリージョンの完了まで待機するよりもはるかに早くアプリケーションを続行できます。

リソース プロバイダーの表示

特定のリソース プロバイダーの情報を表示するには、以下を実行します。

  1. Azure portal にサインインします。

  2. Azure portal のメニューで、[すべてのサービス] を選択します。

  3. [すべてのサービス] ボックスで "リソース エクスプ ローラー (resource explorer)" と入力し、[リソース エクスプ ローラー] を選択します。

    [すべてのサービス] を選択する

  4. 右矢印を選択して [プロバイダー] を展開します。

    プロバイダーの選択

  5. 表示するリソース プロバイダーとリソースの種類を展開します。

    リソースの種類の選択

  6. リソース マネージャーはすべてのリージョンでサポートされていますが、デプロイするリソースはすべてのリージョンではサポートされていない場合があります。 また、サブスクリプションでの制限により、リソースをサポートする一部のリージョンを使用できない場合があります。 リソース エクスプローラーでは、リソースの種類の有効な場所が表示されます。

    場所の表示

  7. API バージョンは、リリース プロバイダーがリリースする REST API のバージョンに一致します。 リソース プロバイダーは、新しい機能を有効にすると、REST API の新しいバージョンをリリースします。 リソース エクスプローラーでは、リソースの種類の有効 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
...

次のステップ