Azure リソースの概要
すべての Azure リソースは、特定の型でデプロイされます。 型によって、リソースの種類を識別します。 リソース ID は、Azure がリソースの特定のインスタンスを識別する方法です。 リソースの種類とリソース ID は、Bicep テンプレートを作成するときに重要な情報を提供するため、その構造を理解することが重要です。
リソース プロバイダー
Azure Resource Manager は、Resource Manager API と ARM テンプレートを介してさまざまなリソース プロバイダーを管理できるように設計されています。 リソース プロバイダーは、通常は 1 つまたは少数の Azure サービスに関連するリソースの種類を論理的にグループ化したものです。 リソース プロバイダーの例を次に示します。
Microsoft.Compute
。仮想マシンに使用されます。Microsoft.Network
。仮想ネットワーク、ネットワーク セキュリティ グループ、ルーティング テーブルなどのネットワーク リソースに使用されます。Microsoft.Cache
。Azure Cache for Redis に使用されます。Microsoft.Sql
。Azure SQL に使用されます。Microsoft.Web
。Azure App Service および Azure Functions に使用されます。Microsoft.DocumentDB
。Azure Cosmos DB に使用されます。
Note
リソース プロバイダーの名前とリソースの種類の名前が、使用している Azure サービスの名前と一致しない場合や、古い製品名またはリソース名になっている場合もあります。 たとえば、Log Analytics ワークスペースのリソース プロバイダーは Microsoft.OperationalInsights
です。
各リソースの種類のドキュメント (ARM テンプレート構文) は、リソース プロバイダーに従って編成されています。
公開するリソースの種類を使用する前に、リソース プロバイダーをサブスクリプションに登録する必要があります。 通常、登録は 1 回限りのプロセスです。 Bicep デプロイを送信すると、Resource Manager により、このファイルで使用されているリソース プロバイダーが自動的に登録されます。 Azure portal、Azure CLI、または Azure PowerShell を使用し、リソース プロバイダーを登録することもできます。
リソースの種類
リソース プロバイダーは、複数の異なる型を公開します。 各リソースの種類には、リソースとその実行方法を定義する独自のプロパティと動作のセットがあります。 たとえば、 Microsoft.Web
リソース プロバイダー内には、次のようないくつかのリソースの種類があります。
sites
: App Service アプリケーションまたは Azure Functions アプリケーションを定義します。 プロパティには、アプリケーションが使用する環境変数、およびアプリケーションにアクセスするためにサポートされているプロトコル (HTTP および HTTPS) が含まれます。serverFarms
: アプリケーションを実行するインフラストラクチャである App Service プランを定義します。 プロパティには、サーバーのサイズと SKU、およびデプロイするプランのインスタンスの数が含まれます。
Bicep でリソースを定義するときは、リソースの種類と、リソースに使用するリソース プロバイダーの API のバージョンを指定する必要があります。 この情報は、Bicep ツールと Azure Resource Manager がリソース定義で提供する必要があるプロパティを理解するのに役立ちます。
ヒント
リソースごとに最新の API バージョンを使用することをお勧めします。 Azure サービスの新機能は、新しい API バージョンでのみ使用できる場合があります。
リソース プロバイダーと型名を組み合わせて、完全修飾のリソースの種類名を作成します。 完全修飾の型名は、リソース プロバイダー名、スラッシュ (/
)、 およびリソースの種類で構成されます。 たとえば、ストレージ アカウントの完全修飾型名は Microsoft.Storage/storageAccounts
です。 このインスタンスでは、そのリソース プロバイダー名は Microsoft.Storage
で、リソースの種類は storageAccounts
です。
リソース ID
すべての Azure リソースには一意のリソース ID があります。 この ID には、同じ種類の他のリソースから、または同じ名前を共有する可能性のある異なるリソースからでも、リソースを明確に特定するのに役立つ情報が含まれています。 ストレージ アカウントのリソース ID は次のように表示されます。
/subscriptions/A123b4567c-1234-1a2b-2b1a-1234abc12345/resourceGroups/ToyDevelopment/providers/Microsoft.Storage/storageAccounts/secrettoys
同じ情報をビジュアルに表現したものを見てみましょう。
リソース ID によって、リソースの種類とデプロイした特定のリソースに関する情報が相互に関連付けされているのを確認できます。 このリソース ID の例をそのコンポーネントに分割してみましょう。
subscriptions/A123b4567c-1234-1a2b-2b1a-1234abc12345
は、このリソースが ID とともに Azure サブスクリプション内にあることを示します。A123b4567c-1234-1a2b-2b1a-1234abc12345
。resourceGroups/ToyDevelopment
は、リソースがToyDevelopment
という名前のリソース グループ内にあるかどうかを示します。providers/Microsoft.Storage
は、リソースがMicrosoft.Storage
リソース プロバイダーの型を使用していることを示します。storageAccounts
はリソースの種類です。secrettoys
ストレージ アカウントの名前です。
ヒント
シンボリック名と id
プロパティを使用して、Bicep 内の任意のリソース ID にアクセスできます。 たとえば、シンボリック名 toyDesignDocumentsStorageAccount
を持つストレージ アカウントを定義する場合は、 式 toyDesignDocumentsStorageAccount.id
を使用してそのリソース ID にアクセスできます。
リソースの種類とリソース ID の基本を理解したので、子リソースに目を向けてみましょう。