Aracılığıyla paylaş


ARM şablonları için kapsam işlevleri

Resource Manager, Azure Resource Manager şablonunuzda (ARM şablonu) dağıtım kapsamı değerlerini almak için aşağıdaki işlevleri sağlar:

Parametrelerden, değişkenlerden veya geçerli dağıtımdan değer almak için bkz . Dağıtım değeri işlevleri.

İpucu

ARM şablonlarıyla aynı özellikleri sunduğundan ve söz diziminin kullanımı daha kolay olduğundan Bicep'i öneririz. Daha fazla bilgi edinmek için bkz . kapsam işlevleri.

managementGroup

managementGroup()

Geçerli dağıtımdaki yönetim grubundan özelliklere sahip bir nesne döndürür.

Bicep'te managementGroup kapsam işlevini kullanın.

Açıklamalar

managementGroup() yalnızca bir yönetim grubu dağıtımlarında kullanılabilir. Dağıtım işlemi için geçerli yönetim grubunu döndürür. Geçerli yönetim grubunun özelliklerini almak için kullanın.

Dönüş değeri

Geçerli yönetim grubunun özelliklerine sahip bir nesne.

Yönetim grubu örneği

Aşağıdaki örnek, geçerli yönetim grubunun özelliklerini döndürür.

{
  "$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')]"
    }
  }
}

Şunu döndürür:

"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": "00000000-0000-0000-0000-000000000000"
    },
    "type": "/providers/Microsoft.Management/managementGroups"
  }
}

Sonraki örnek yeni bir yönetim grubu oluşturur ve üst yönetim grubunu ayarlamak için bu işlevi kullanır.

{
  "$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": "2020-05-01",
      "scope": "/",
      "name": "[parameters('mgName')]",
      "properties": {
        "details": {
          "parent": {
            "id": "[managementGroup().id]"
          }
        }
      }
    }
  ],
  "outputs": {
    "newManagementGroup": {
      "type": "string",
      "value": "[parameters('mgName')]"
    }
  }
}

resourceGroup

resourceGroup()

Geçerli kaynak grubunu temsil eden bir nesne döndürür.

Bicep'te resourceGroup kapsam işlevini kullanın.

Dönüş değeri

Döndürülen nesne aşağıdaki biçimdedir:

{
  "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}",
  "name": "{resourceGroupName}",
  "type":"Microsoft.Resources/resourceGroups",
  "location": "{resourceGroupLocation}",
  "managedBy": "{identifier-of-managing-resource}",
  "tags": {
  },
  "properties": {
    "provisioningState": "{status}"
  }
}

managedBy özelliği yalnızca başka bir hizmet tarafından yönetilen kaynakları içeren kaynak grupları için döndürülür. Yönetilen Uygulamalar, Databricks ve AKS için özelliğin değeri, yönetilen kaynağın kaynak kimliğidir.

Açıklamalar

İşlev, resourceGroup() abonelik düzeyinde dağıtılan bir şablonda kullanılamaz. Yalnızca bir kaynak grubuna dağıtılan şablonlarda kullanılabilir. İşlevi resourceGroup(), üst şablon aboneliğe dağıtıldığında bile bir kaynak grubunu hedefleyen bağlantılı veya iç içe yerleştirilmiş bir şablonda (iç kapsama sahip) kullanabilirsiniz. Bu senaryoda, bağlantılı veya iç içe yerleştirilmiş şablon kaynak grubu düzeyinde dağıtılır. Abonelik düzeyinde bir dağıtımda kaynak grubunu hedefleme hakkında daha fazla bilgi için bkz . Azure kaynaklarını birden fazla aboneliğe veya kaynak grubuna dağıtma.

resourceGroup işlevinin yaygın kullanımlarından biri, kaynak grubuyla aynı konumda kaynak oluşturmaktır. Aşağıdaki örnek, varsayılan parametre değeri için kaynak grubu konumunu kullanır.

"parameters": {
  "location": {
    "type": "string",
    "defaultValue": "[resourceGroup().location]"
  }
}

Kaynak grubundan resourceGroup kaynağa etiket uygulamak için işlevini de kullanabilirsiniz. Daha fazla bilgi için bkz . Kaynak grubundan etiket uygulama.

Birden çok kaynak grubuna dağıtmak için iç içe şablonları kullanırken, işlevi değerlendirmek resourceGroup için kapsamı belirtebilirsiniz. Daha fazla bilgi için bkz . Azure kaynaklarını birden fazla aboneliğe veya kaynak grubuna dağıtma.

Kaynak grubu örneği

Aşağıdaki örnek, kaynak grubunun özelliklerini döndürür.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "resourceGroupOutput": {
      "type": "object",
      "value": "[resourceGroup()]"
    }
  }
}

Yukarıdaki örnek aşağıdaki biçimde bir nesne döndürür:

{
  "id": "/subscriptions/{subscription-id}/resourceGroups/examplegroup",
  "name": "examplegroup",
  "type":"Microsoft.Resources/resourceGroups",
  "location": "southcentralus",
  "properties": {
    "provisioningState": "Succeeded"
  }
}

aboneliği

subscription()

Geçerli dağıtım için abonelikle ilgili ayrıntıları döndürür.

Bicep'te abonelik kapsamı işlevini kullanın.

Dönüş değeri

İşlev aşağıdaki biçimi döndürür:

{
  "id": "/subscriptions/{subscription-id}",
  "subscriptionId": "{subscription-id}",
  "tenantId": "{tenant-id}",
  "displayName": "{name-of-subscription}"
}

Açıklamalar

Birden çok aboneliğe dağıtmak için iç içe şablonları kullanırken abonelik işlevini değerlendirme kapsamını belirtebilirsiniz. Daha fazla bilgi için bkz . Azure kaynaklarını birden fazla aboneliğe veya kaynak grubuna dağıtma.

Abonelik örneği

Aşağıdaki örnekte çıkışlar bölümünde adı verilen abonelik işlevi gösterilmektedir.

{
  "$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

tenant()

Kullanıcının kiracısını döndürür.

Bicep'te kiracı kapsamı işlevini kullanın.

Açıklamalar

tenant() herhangi bir dağıtım kapsamıyla kullanılabilir. Her zaman geçerli kiracıyı döndürür. Geçerli kiracının özelliklerini almak için bu işlevi kullanın.

Bağlantılı şablon veya uzantı kaynağının kapsamını ayarlarken, söz dizimini kullanın: "scope": "/".

Dönüş değeri

Geçerli kiracı hakkında özelliklere sahip bir nesne.

Kiracı örneği

Aşağıdaki örnek bir kiracının özelliklerini döndürür.

{
  "$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')]"
    }
  }
}

Şunu döndürür:

"tenantResult": {
  "type": "Object",
  "value": {
    "countryCode": "US",
    "displayName": "Contoso",
    "id": "/tenants/00000000-0000-0000-0000-000000000000",
    "tenantId": "00000000-0000-0000-0000-000000000000"
  }
}

Sonraki adımlar

  • ARM şablonundaki bölümlerin açıklaması için bkz . ARM şablonlarının yapısını ve söz dizimini anlama.
  • Birden çok şablonu birleştirmek için bkz . Azure kaynaklarını dağıtırken bağlantılı ve iç içe yerleştirilmiş şablonları kullanma.
  • Kaynak türü oluştururken belirtilen sayıda yineleme yapmak için bkz . ARM şablonlarında kaynak yinelemesi.
  • Oluşturduğunuz şablonun nasıl dağıtılacağına bakmak için bkz . ARM şablonları ve Azure PowerShell ile kaynakları dağıtma.