إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
لتبسيط إدارة الموارد، يمكنك نشر الموارد على مستوى اشتراك Azure. على سبيل المثال، يمكنك نشر النهج وعنصر التحكم في الوصول استناداً إلى دور Azure (Azure RBAC) على اشتراكك، والذي يتم تطبيقهما عبر اشتراكك.
توضح هذه المقالة كيفية تعيين نطاق النشر إلى اشتراك في ملف Bicep. لمزيد من المعلومات، راجع فهم النطاق.
إشعار
يمكنك نشر حوالي 800 مجموعة موارد مختلفة في عملية النشر على مستوى الاشتراك.
الموارد المدعومة
لا يمكن نشر جميع أنواع الموارد على مستوى الاشتراك. يسرد هذا المقطع أنواع الموارد المعتمدة.
بخصوص Azure Blueprints، استخدم:
بالنسبة إلى نُهج Azure، استخدم:
للتحكم في الوصول، استخدم:
- accessReviewScheduleDefinitions
- accessReviewScheduleSettings
- تعيينات الدور
- طلبات جدول تعيين الدور
- معرفات الدور
- طلبات جدولة أذونات الدور
- تعيينات نهج إدارة الدور
بالنسبة للقوالب المتداخلة التي يتم نشرها في مجموعات الموارد، استخدم:
لإنشاء مجموعات موارد جديدة، استخدم:
لإدارة اشتراكك، استخدم:
- الموازنات
- التكوينات - Advisor
- lineOfCredit
- locks
- ملف التعريف - تغيير التحليل
- أنواع الخطط المدعومة
- العلامات
للمراقبة، استخدم:
للأمان، استخدم:
- إعدادات الحماية المتقدمة
- قواعد ضغط التنبيهات
- بيانات تعريف التقييم
- assessments
- autoProvisioningSettings
- connectors
- مجموعات أمان الجهاز
- إعدادات الاستيعاب
- الأسعار
- الأمانالاتصالات
- الإعدادات
- إعدادات مساحة العمل
وتشمل الأنواع الأخرى المدعومة ما يلي:
عين نطاق
لتعيين النطاق للاشتراك، استخدم:
targetScope = 'subscription'
أوامر التوزيع
للنشر إلى اشتراك، استخدم أوامر النشر على مستوى الاشتراك.
بالنسبة لـ Azure CLI، استخدم الأمر az deployment sub create. المثال التالي ينشر قالب لإنشاء مجموعة موارد:
az deployment sub create \
--name demoSubDeployment \
--location centralus \
--template-file main.bicep \
--parameters rgName=demoResourceGroup rgLocation=centralus
للحصول على مزيد من المعلومات التفصيلية حول أوامر النشر وخيارات نشر قوالب ARM، راجع:
- نشر الموارد باستخدام قوالب ARM وAzure CLI
- نشر الموارد باستخدام قوالب ARM وAzure PowerShell
- نشر قوالب ARM باستخدام Cloud Shell
موقع التوزيع والاسم
يجب توفير موقع للنشر عند القيام بعمليات النشر على مستوى الاشتراك. ينفصل موقع النشر عن موقع الموارد التي تقوم بنشرها. يحدد موقع التوزيع مكان تخزين بيانات التوزيع. تتطلب عمليات نشرمجموعة الإدارة والمستأجر موقعاً أيضاً. بالنسبة إلى عمليات نشر مجموعة الموارد، يتم استخدام موقع مجموعة الموارد لتخزين بيانات النشر.
يمكنك توفير اسم لعملية التوزيع، أو استخدام اسم التوزيع الافتراضي. يكون الاسم الافتراضي هو اسم ملف القالب. على سبيل المثال، يؤدي نشر قالب باسم main.bicep إلى إنشاء اسم نشر افتراضي يسمى main.
يكون الموقع غير قابل للتغيير لكل اسم عملية توزيع. ولا يمكنك إنشاء عملية توزيع في أحد المواقع عندما يكون هناك توزيع موجود بنفس الاسم في موقع آخر. على سبيل المثال، إذا قمت بإنشاء نشر اشتراك باسم deployment1 في الموقع centralus، فلا يمكنك لاحقاً إنشاء نشر آخر بالاسم deployment1 في الموقع westus. إذا تلقيت رمز الخطأ InvalidDeploymentLocation، فاستخدم اسمًا مختلفًا أو نفس موقع التوزيع السابق لذلك الاسم.
نطاقات التوزيع
في ملف Bicep، يجب نشر كافة الموارد المعلنة باستخدام resource الكلمة الأساسية في نفس نطاق النشر. لنشر الاشتراك، يعني هذا أنه يجب نشر جميع resource الإعلانات في ملف Bicep إلى نفس الاشتراك أو كمورد تابع أو ملحق لمورد في نفس الاشتراك مثل النشر.
ومع ذلك، لا ينطبق هذا التقييد على existing الموارد. يمكنك الرجوع إلى الموارد الموجودة في نطاق مختلف عن التوزيع.
لنشر الموارد في نطاقات متعددة ضمن عملية نشر واحدة، استخدم الوحدات النمطية. يؤدي نشر وحدة نمطية إلى تشغيل "نشر متداخل"، مما يسمح لك باستهداف نطاقات مختلفة. يجب أن يكون لدى المستخدم الذي ينشر ملف Bicep الأصل الأذونات اللازمة لبدء عمليات النشر في تلك النطاقات.
يمكنك نشر مورد من داخل ملف Bicep لنطاق الاشتراك في النطاقات التالية:
نطاق للاشتراك
لنشر الموارد إلى الاشتراك الهدف، أضف هذه الموارد باستخدام الكلمة الأساسية resource.
targetScope = 'subscription'
// resource group created in target subscription
resource exampleResource 'Microsoft.Resources/resourceGroups@2025-04-01' = {
...
}
للحصول على أمثلة للتوزيع إلى الاشتراك، راجع إنشاء مجموعات موارد باستخدام Bicep وتعريف النهج المعين.
لنشر الموارد إلى اشتراك مختلف عن الاشتراك الذي تتم به العملية، أضف وحدة نمطية. استخدم الدالة subscription لتعيين الخاصية scope. قم بتوفير الخاصية subscriptionId لمعرف الاشتراك الذي تريد النشر إليه.
targetScope = 'subscription'
param otherSubscriptionID string
// module deployed at subscription level but in a different subscription
module exampleModule 'module.bicep' = {
name: 'deployToDifferentSub'
scope: subscription(otherSubscriptionID)
}
نطاق لمجموعة الموارد
لنشر الموارد إلى مجموعة موارد ضمن الاشتراك، أضف وحدة نمطية وقم ب تعيين الخاصية scope الخاصة بها. إذا كانت مجموعة الموارد موجودة بالفعل، استخدم الدالة resourceGroup لتعيين قيمة النطاق. وقم بتوفير اسم مجموعة الموارد.
targetScope = 'subscription'
param resourceGroupName string
module exampleModule 'module.bicep' = {
name: 'exampleModule'
scope: resourceGroup(resourceGroupName)
}
إذا تم إنشاء مجموعة الموارد في نفس ملف Bicep، استخدم الاسم الرمزي لمجموعة الموارد لتعيين قيمة النطاق. للحصول على مثال لتعيين النطاق إلى الاسم الرمزي، راجع إنشاء مجموعة موارد باستخدام Bicep.
نطاق للمستأجر
لإنشاء موارد في المستأجر، أضف الوحدة النمطية. استخدم الدالة tenant لتعيين الخاصية scope الخاصة بها.
يجب أن يكون لدى المستخدم الذي يقوم بنشر القالب حق الوصول المطلوب للنشر لدى المستأجر.
يتضمن المثال التالي وحدة نمطية التي يتم نشرها إلى المستأجر.
targetScope = 'subscription'
// module deployed at tenant level
module exampleModule 'module.bicep' = {
name: 'deployToTenant'
scope: tenant()
}
وبدلاً من استخدام وحدة نمطية، يمكنك تعيين النطاق tenant() لبعض أنواع الموارد. يقوم المثال التالي بنشر مجموعة إدارة في المستأجر.
targetScope = 'subscription'
param mgName string = 'mg-${uniqueString(newGuid())}'
// management group created at tenant
resource managementGroup 'Microsoft.Management/managementGroups@2024-02-01-preview' = {
scope: tenant()
name: mgName
properties: {}
}
output output string = mgName
لمزيد من المعلومات، راجع مجموعة الإدارة.
مجموعات الموارد
للحصول على معلومات حول إنشاء مجموعات الموارد، راجع إنشاء مجموعة موارد باستخدام Bicep.
نهج Azure
تعيين تعريف النهج
يُعين المثال التالي تعريف نهج موجود للاشتراك. إذا كان تعريف النهج يستخدم معلمات، فقم بتوفيرها ككائن. إذا لم يكن تعريف النهج يستخدم المعلمات، فاستخدم الكائن الافتراضي الفارغ.
targetScope = 'subscription'
param policyDefinitionID string
param policyName string
param policyParameters object = {}
resource policyAssign 'Microsoft.Authorization/policyAssignments@2025-03-01' = {
name: policyName
properties: {
policyDefinitionId: policyDefinitionID
parameters: policyParameters
}
}
إنشاء تعريفات النهج وتعيينها
يمكنك تحديد تعريف النهج وتعيينه في نفس الملف Bicep.
targetScope = 'subscription'
resource locationPolicy 'Microsoft.Authorization/policyDefinitions@2025-03-01' = {
name: 'locationpolicy'
properties: {
policyType: 'Custom'
parameters: {}
policyRule: {
if: {
field: 'location'
equals: 'northeurope'
}
then: {
effect: 'deny'
}
}
}
}
resource locationRestrict 'Microsoft.Authorization/policyAssignments@2025-03-01' = {
name: 'allowedLocation'
properties: {
policyDefinitionId: locationPolicy.id
}
}
عنصر تحكم الوصول
للتعرف على تعيين الأدوار، راجع إضافة تعيينات دور Azure باستخدام قوالب Azure Resource Manager.
يُنشئ المثال التالي مجموعة موارد، وتطبيق تأمين عليها، وتعيين دور للحساب الأساسي.
targetScope = 'subscription'
@description('Name of the resourceGroup to create')
param resourceGroupName string
@description('Location for the resourceGroup')
param resourceGroupLocation string
@description('principalId of the user that will be given contributor access to the resourceGroup')
param principalId string
@description('roleDefinition to apply to the resourceGroup - default is contributor')
param roleDefinitionId string = 'b24988ac-6180-42a0-ab88-20f7382dd24c'
@description('Unique name for the roleAssignment in the format of a guid')
param roleAssignmentName string = guid(principalId, roleDefinitionId, resourceGroupName)
var roleID = '/subscriptions/${subscription().subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/${roleDefinitionId}'
resource newResourceGroup 'Microsoft.Resources/resourceGroups@2025-04-01' = {
name: resourceGroupName
location: resourceGroupLocation
properties: {}
}
module applyLock 'lock.bicep' = {
name: 'applyLock'
scope: newResourceGroup
}
module assignRole 'role.bicep' = {
name: 'assignRBACRole'
scope: newResourceGroup
params: {
principalId: principalId
roleNameGuid: roleAssignmentName
roleDefinitionId: roleID
}
}
يوضح المثال التالي الوحدة النمطية لتطبيق التأمين:
resource createRgLock 'Microsoft.Authorization/locks@2020-05-01' = {
name: 'rgLock'
properties: {
level: 'CanNotDelete'
notes: 'Resource group should not be deleted.'
}
}
يوضح المثال التالي الوحدة النمطية لتعيين الدور:
@description('The principal to assign the role to')
param principalId string
@description('A GUID used to identify the role assignment')
param roleNameGuid string = newGuid()
param roleDefinitionId string
resource roleNameGuid_resource 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
name: roleNameGuid
properties: {
roleDefinitionId: roleDefinitionId
principalId: principalId
}
}
الخطوات التالية
للتعرف على النطاقات الأخرى، راجع: