Azure Resource Manager には、Azure Resource Manager テンプレート (ARM テンプレート) でデプロイ スコープの値を取得するための次の関数が用意されています。
パラメーター、変数、または現在のデプロイから値を取得するには、 デプロイ値関数を参照してください。
managementGroup
managementGroup()
現在の展開の管理グループからプロパティを持つオブジェクトを返します。
Bicep で、 managementGroup スコープ関数を使用します。
注釈
managementGroup() は、 管理グループの展開でのみ使用できます。 デプロイ操作の現在の管理グループが返されます。 これを使用して、現在の管理グループのプロパティを取得します。
戻り値
現在の管理グループのプロパティを持つオブジェクト。
管理グループの例
次の例では、現在の管理グループのプロパティを返します。
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"variables": {
"mgInfo": "[managementGroup()]"
},
"resources": [],
"outputs": {
"mgResult": {
"type": "object",
"value": "[variables('mgInfo')]"
}
}
}
次のものが返されます。
"mgResult": {
"type": "Object",
"value": {
"id": "/providers/Microsoft.Management/managementGroups/examplemg1",
"name": "examplemg1",
"properties": {
"details": {
"parent": {
"displayName": "Tenant Root Group",
"id": "/providers/Microsoft.Management/managementGroups/00000000-0000-0000-0000-000000000000",
"name": "00000000-0000-0000-0000-000000000000"
},
"updatedBy": "00000000-0000-0000-0000-000000000000",
"updatedTime": "2020-07-23T21:05:52.661306Z",
"version": "1"
},
"displayName": "Example MG 1",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
},
"type": "/providers/Microsoft.Management/managementGroups"
}
}
次の例では、新しい管理グループを作成し、この関数を使用して親管理グループを設定します。
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"mgName": {
"type": "string",
"defaultValue": "[format('mg-{0}', uniqueString(newGuid()))]"
}
},
"resources": [
{
"type": "Microsoft.Management/managementGroups",
"apiVersion": "2024-02-01-preview",
"scope": "/",
"name": "[parameters('mgName')]",
"properties": {
"details": {
"parent": {
"id": "[managementGroup().id]"
}
}
}
}
],
"outputs": {
"newManagementGroup": {
"type": "string",
"value": "[parameters('mgName')]"
}
}
}
resourceGroup
resourceGroup()
現在のリソース グループを表すオブジェクトを返します。
Bicep で、 resourceGroup スコープ関数を使用します。
戻り値
返されるオブジェクトの形式は次のとおりです。
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}",
"name": "{resourceGroupName}",
"type":"Microsoft.Resources/resourceGroups",
"location": "{resourceGroupLocation}",
"managedBy": "{identifier-of-managing-resource}",
"tags": {
},
"properties": {
"provisioningState": "{status}"
}
}
managedBy プロパティは、別のサービスによって管理されているリソースを含むリソース グループに対してのみ返されます。 マネージド アプリケーション、Databricks、および AKS の場合、プロパティの値は管理リソースのリソース ID です。
注釈
resourceGroup()関数は、サブスクリプション レベルでデプロイされたテンプレートでは使用できません。 リソース グループにデプロイされているテンプレートでのみ使用できます。 親テンプレートがサブスクリプションにデプロイされている場合でも、リソース グループを対象とするリンクされたテンプレートまたは入れ子になったテンプレート (内部スコープを含む) で、resourceGroup()関数を使用できます。 そのシナリオでは、リンクされたテンプレートまたは入れ子になったテンプレートがリソース グループ レベルでデプロイされます。 サブスクリプション レベルのデプロイでリソース グループをターゲットにする方法の詳細については、「複数の サブスクリプションまたはリソース グループに Azure リソースをデプロイする」を参照してください。
resourceGroup関数の一般的な用途は、リソース グループと同じ場所にリソースを作成することです。 次の例では、既定のパラメーター値にリソース グループの場所を使用します。
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
}
resourceGroup関数を使用して、リソース グループからリソースにタグを適用することもできます。 詳細については、「 リソース グループからのタグの適用」を参照してください。
入れ子になったテンプレートを使用して複数のリソース グループにデプロイする場合は、 resourceGroup 関数を評価するためのスコープを指定できます。 詳細については、「複数の サブスクリプションまたはリソース グループに Azure リソースをデプロイする」を参照してください。
リソース グループの例
次の例では、リソース グループのプロパティを返します。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"resourceGroupOutput": {
"type": "object",
"value": "[resourceGroup()]"
}
}
}
前の例では、次の形式のオブジェクトが返されます。
{
"id": "/subscriptions/{subscription-id}/resourceGroups/examplegroup",
"name": "examplegroup",
"type":"Microsoft.Resources/resourceGroups",
"location": "southcentralus",
"properties": {
"provisioningState": "Succeeded"
}
}
サブスクリプション
subscription()
現在のデプロイのサブスクリプションに関する詳細を返します。
Bicep で、 subscription スコープ関数を使用します。
戻り値
この関数は、次の形式を返します。
{
"id": "/subscriptions/{subscription-id}",
"subscriptionId": "{subscription-id}",
"tenantId": "{tenant-id}",
"displayName": "{name-of-subscription}"
}
注釈
入れ子になったテンプレートを使用して複数のサブスクリプションにデプロイする場合は、 subscription 関数を評価するためのスコープを指定できます。 詳細については、「複数の サブスクリプションまたはリソース グループに Azure リソースをデプロイする」を参照してください。
サブスクリプションの例
次の例は、outputs セクションで呼び出されるsubscription関数を示しています。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"subscriptionOutput": {
"type": "object",
"value": "[subscription()]"
}
}
}
テナント
tenant()
ユーザーのテナントを返します。
Bicep で、 tenant スコープ関数を使用します。
注釈
tenant() は、任意のデプロイ スコープで使用できます。 常に現在のテナントが返されます。 現在のテナントのプロパティを取得するには、この関数を使用します。
リンクされたテンプレートまたは拡張機能リソースのスコープを設定する場合は、構文 "scope": "/"を使用します。
戻り値
現在のテナントに関するプロパティを持つオブジェクト。
テナントの例
次の例では、テナントのプロパティを返します。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"variables": {
"tenantInfo": "[tenant()]"
},
"resources": [],
"outputs": {
"tenantResult": {
"type": "object",
"value": "[variables('tenantInfo')]"
}
}
}
次のものが返されます。
"tenantResult": {
"type": "Object",
"value": {
"countryCode": "US",
"displayName": "Contoso",
"id": "/tenants/00000000-0000-0000-0000-000000000000",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}
}
次のステップ
- ARM テンプレートのセクションの詳細については、ARM テンプレート の構造と構文を参照してください。
- 複数のテンプレートをマージするには、 Azure リソースのデプロイ時にリンクされたテンプレートと入れ子になったテンプレートを参照してください。
- リソースの種類を作成するときに、指定した回数だけ反復処理を行う場合は、 ARM テンプレートのリソースイテレーションを参照してください。
- 作成したテンプレートのデプロイについては、 ARM テンプレートと Azure PowerShell を使用してリソースをデプロイする方法を参照してください。