وظائف النطاق لـ Bicep

توضح هذه المقالة وظائف Bicep للحصول على قيم النطاق.

managementGroup

managementGroup()

إرجاع كائن بخصائص من مجموعة الإدارة في النشر الحالي.

managementGroup(identifier)

إرجاع عنصر مستخدم لتعيين النطاق إلى مجموعة إدارة.

Namespace: az.

الملاحظات

يمكن استخدام managementGroup() فقط في عمليات نشر مجموعة الإدارة. تقوم بإرجاع مجموعة الإدارة الحالية لعملية النشر. يُستخدم عند الحصول على عنصر نطاق أو الحصول على خصائص لمجموعة الإدارة الحالية.

يمكن استخدام managementGroup(identifier) لأي نطاق نشر، ولكن فقط عند الحصول على عنصر النطاق. لاسترداد خصائص مجموعة إدارة، لا يمكنك تمرير معرف مجموعة الإدارة.

المعلمات

المعلمة مطلوب النوع الوصف
‏‏محدد لا سلسلة المعرف الفريد لمجموعة الإدارة للنشر إليها. لا تستخدم اسم العرض لمجموعة الإدارة. إذا لم تقدم قيمة، فسيتم إرجاع مجموعة الإدارة الحالية.

القيمة المرجعة

كائن يستخدم لتعيين خاصية scope على وحدة نمطية أو نوع مورد ملحق. أو، عنصر بخصائص مجموعة الإدارة الحالية.

مثال مجموعة الإدارة

يعيّن المثال التالي نطاق وحدة نمطية لمجموعة إدارة.

param managementGroupIdentifier string

module  'mgModule.bicep' = {
  name: 'deployToMG'
  scope: managementGroup(managementGroupIdentifier)
}

يعرض المثال التالي خصائص مجموعة الإدارة الحالية.

targetScope = 'managementGroup'

var mgInfo = managementGroup()

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

ينشئ المثال التالي مجموعة إدارة جديدة ويستخدم هذه الوظيفة لتعيين مجموعة الإدارة الأصل.

targetScope = 'managementGroup'

param mgName string = 'mg-${uniqueString(newGuid())}'

resource newMG 'Microsoft.Management/managementGroups@2020-05-01' = {
  scope: tenant()
  name: mgName
  properties: {
    details: {
      parent: {
        id: managementGroup().id
      }
    }
  }
}

output newManagementGroup string = mgName

resourceGroup

resourceGroup()

إرجاع كائن يمثل مجموعة الموارد الحالية.

resourceGroup(resourceGroupName)

و

resourceGroup(subscriptionId, resourceGroupName)

إرجاع كائن مستخدم لتعيين النطاق إلى مجموعة موارد.

Namespace: az.

الملاحظات

للدالة ResourceGroup استخدامان مختلفان. أحد الاستخدامات هو تعيين النطاق على وحدة نمطية أو نوع مورد ملحق. الاستخدام الآخر يتمثل في الحصول على تفاصيل حول مجموعة الموارد الحالية. تحديد موضع الوظيفة يحدد استخدامها. عند استخدامها لتعيين الخاصية scope، فإنها ترجع عنصر نطاق.

يمكن استخدام resourceGroup() لتحديد النطاق أو الحصول على تفاصيل حول مجموعة الموارد.

يمكن استخدام resourceGroup(resourceGroupName) وresourceGroup(subscriptionId, resourceGroupName) فقط لتعيين النطاق.

المعلمات

المعلمة مطلوب النوع الوصف
ResourceGroupName لا سلسلة اسم مجموعة الموارد التي سيتم النشر إليها. إذا لم تقدم قيمة، فسيتم إرجاع مجموعة الموارد الحالية.
subscriptionId لا سلسلة المعرف الفريد للاشتراك الذي يجب نشره. إذا لم تقدم قيمة، يتم إرجاع الاشتراك الحالي.

القيمة المرجعة

عند استخدامها لإعداد النطاق، ترجع الدالة عنصرًا صالحًا للخاصية scope في وحدة نمطية أو نوع مورد ملحق.

عند استخدامها للحصول على تفاصيل حول مجموعة الموارد، تقوم الدالة بإرجاع التنسيق التالي:

{
  "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، فإن قيمة الخاصية هي معرف المورد لمورد الإدارة.

مثال مجموعة الموارد

المثال التالي يحدد نطاق وحدة نمطية لمجموعة موارد.

param resourceGroupName string

module exampleModule 'rgModule.bicep' = {
  name: 'exampleModule'
  scope: resourceGroup(resourceGroupName)
}

يعرض المثال التالي خصائص مجموعة الموارد.

output resourceGroupOutput object = resourceGroup()

تقوم بإرجاع كائن بالتنسيق التالي:

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

الاستخدام الشائع لدالة ResourceGroup هو إنشاء موارد في نفس الموقع مثل مجموعة الموارد. يستخدم المثال التالي موقع مجموعة الموارد لقيمة معلمة افتراضية.

param location string = resourceGroup().location

يمكنك أيضًا استخدام وظيفة ResourceGroup لتطبيق العلامات من مجموعة الموارد على أحد الموارد. لمزيد من المعلومات، راجع نظرة عامة حول مجموعة موارد Azure.

الاشتراك

subscription()

إرجاع تفاصيل حول الاشتراك للنشر الحالي.

subscription(subscriptionId)

يُرجع عنصرًا مستخدمًا لتعيين النطاق للاشتراك.

Namespace: az.

الملاحظات

دالة الاشتراك لها استخدامان مختلفان. أحد الاستخدامات هو تعيين النطاق على وحدة نمطية أو نوع مورد ملحق. الاستخدام الآخر هو الحصول على تفاصيل حول الاشتراك الحالي. تحديد موضع الوظيفة يحدد استخدامها. عند استخدامها لتعيين الخاصية scope، فإنها ترجع عنصر نطاق.

يمكن استخدام subscription(subscriptionId) فقط لتعيين النطاق.

يمكن استخدام subscription() لتحديد النطاق أو الحصول على تفاصيل حول الاشتراك.

المعلمات

المعلمة مطلوب النوع الوصف
subscriptionId لا سلسلة المعرف الفريد للاشتراك الذي يجب نشره. إذا لم تقدم قيمة، يتم إرجاع الاشتراك الحالي.

القيمة المرجعة

عند استخدامها لإعداد النطاق، ترجع الدالة عنصرًا صالحًا للخاصية scope في وحدة نمطية أو نوع مورد ملحق.

عند استخدامها للحصول على تفاصيل حول الاشتراك، تقوم الدالة بإرجاع التنسيق التالي:

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

مثال الاشتراك

المثال التالي نطاقات وحدة نمطية للاشتراك.

module exampleModule 'subModule.bicep' = {
  name: 'deployToSub'
  scope: subscription()
}

يقوم المثال التالي بإرجاع تفاصيل الاشتراك.

output subscriptionOutput object = subscription()

المستأجر

tenant()

يُرجع عنصرًا يُستخدم لتعيين النطاق إلى المستأجر.

أو

إرجاع مستأجر المستخدم.

Namespace: az.

الملاحظات

يمكن استخدام tenant() مع أي نطاق نشر. دائمًا ما يقوم بإرجاع المستأجر الحالي. يمكنك استخدام هذه الدالة لتعيين نطاق مورد أو للحصول على خصائص للمستأجر الحالي.

القيمة المرجعة

كائن يستخدم لتعيين خاصية scope على وحدة نمطية أو نوع مورد ملحق. أو، كائن مع خصائص حول المستأجر الحالي.

مثال المستأجر

يوضح المثال التالي وحدة تم نشرها على المستأجر.

module exampleModule 'tenantModule.bicep' = {
  name: 'deployToTenant'
  scope: tenant()
}

يقوم المثال التالي بإرجاع خصائص المستأجر.

var tenantInfo = tenant()

output tenantResult object = tenantInfo

فإنه يعرض:

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

تتطلب بعض الموارد تعيين معرف المستأجر للممتلكات. بدلًا من تمرير معرف المستأجر كمعامل، يمكنك استرداده باستخدام دالة المستأجر.

resource kv 'Microsoft.KeyVault/vaults@2021-06-01-preview' = {
  name: 'examplekeyvault'
  location: 'westus'
  properties: {
    tenantId: tenant().tenantId
    ...
  }
}

الخطوات التالية

لمعرفة المزيد حول نطاقات النشر، راجع: