إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
مورد الامتداد هو مورد يعدل موردا آخر. على سبيل المثال، يمكنك تعيين دور لمورد. تعيين الدور هو نوع مورد امتدادي.
للحصول على قائمة كاملة بأنواع موارد الملحقات، راجع أنواع الموارد التي توسع قدرات الموارد الأخرى.
توضح هذه المقالة كيفية ضبط النطاق لنوع مورد الامتداد عند نشره باستخدام ملف بايسيب. تصف خاصية النطاق المتاحة لموارد التمديد عند التطبيق على مورد ما.
إشعار
خاصية النطاق متاحة فقط لأنواع موارد الامتداد. لتحديد نطاق مختلف لنوع مورد ليس نوع امتداد، استخدم وحدة.
قدم عند نطاق النشر
لتطبيق نوع مورد الامتداد في نطاق النشر المستهدف، أضف المورد إلى قالبك كما تفعل مع أي نوع مورد آخر. المجالات المتاحة هي مجموعة الموارد، الاشتراك، مجموعة الإدارة، والمستأجر. يجب أن يدعم نطاق النشر نوع المورد.
عند نشره في مجموعة موارد، يضيف القالب التالي قفلا لتلك المجموعة.
resource createRgLock 'Microsoft.Authorization/locks@2020-05-01' = {
name: 'rgLock'
properties: {
level: 'CanNotDelete'
notes: 'Resource group should not be deleted.'
}
}
المثال التالي يخصص دورا للاشتراك الذي تم نشره عليه.
targetScope = 'subscription'
@description('The principal to assign the role to')
param principalId string
@allowed([
'Owner'
'Contributor'
'Reader'
])
@description('Built-in role to assign')
param builtInRoleType string
var role = {
Owner: '/subscriptions/${subscription().subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635'
Contributor: '/subscriptions/${subscription().subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c'
Reader: '/subscriptions/${subscription().subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7'
}
resource roleAssignSub 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
name: guid(subscription().id, principalId, role[builtInRoleType])
properties: {
roleDefinitionId: role[builtInRoleType]
principalId: principalId
}
}
التقديم على الموارد
لتطبيق مورد امتدادي على مورد معين، استخدم الخاصية scope . في خاصية scope، أشر إلى المورد الذي تضيف إليه الامتداد. تشير إلى المورد من خلال تقديم الاسم الرمزي للمورد. خاصية النطاق هي خاصية جذر لنوع مورد التوسعة.
المثال التالي ينشئ حساب تخزين ويطبق عليه دور.
@description('The principal to assign the role to')
param principalId string
@allowed([
'Owner'
'Contributor'
'Reader'
])
@description('Built-in role to assign')
param builtInRoleType string
param location string = resourceGroup().location
var role = {
Owner: '/subscriptions/${subscription().subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635'
Contributor: '/subscriptions/${subscription().subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c'
Reader: '/subscriptions/${subscription().subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7'
}
var uniqueStorageName = 'storage${uniqueString(resourceGroup().id)}'
resource demoStorageAcct 'Microsoft.Storage/storageAccounts@2025-06-01' = {
name: uniqueStorageName
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'Storage'
properties: {}
}
resource roleAssignStorage 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
name: guid(demoStorageAcct.id, principalId, role[builtInRoleType])
properties: {
roleDefinitionId: role[builtInRoleType]
principalId: principalId
}
scope: demoStorageAcct
}
يمكنك تطبيق مورد امتدادي على مورد موجود. المثال التالي يضيف قفلا إلى حساب تخزين موجود.
resource demoStorageAcct 'Microsoft.Storage/storageAccounts@2025-06-01' existing = {
name: 'examplestore'
}
resource createStorageLock 'Microsoft.Authorization/locks@2020-05-01' = {
name: 'storeLock'
scope: demoStorageAcct
properties: {
level: 'CanNotDelete'
notes: 'Storage account should not be deleted.'
}
}
تنطبق نفس المتطلبات على موارد التمديد مثل الموارد الأخرى عند استهداف نطاق مختلف عن نطاق الهدف للنشر. للتعرف على كيفية النشر على أكثر من نطاق واحد، انظر:
خصائص resourceGroup والاشتراك مسموح بها فقط على الوحدات. هذه الخصائص غير مسموح بها على الموارد الفردية. استخدم الوحدات إذا كنت تريد نشر مورد توسعة مع تعيين النطاق لمورد في مجموعة موارد مختلفة.
يوضح المثال التالي كيفية تطبيق قفل على حساب تخزين موجود في مجموعة موارد مختلفة.
main.beyesp:
param resourceGroup2Name string param storageAccountName string module applyStoreLock './storageLock.bicep' = { name: 'addStorageLock' scope: resourceGroup(resourceGroup2Name) params: { storageAccountName: storageAccountName } }storageLock.bicep:
param storageAccountName string resource storage 'Microsoft.Storage/storageAccounts@2023-05-01' existing = { name: storageAccountName } resource storeLock 'Microsoft.Authorization/locks@2020-05-01' = { scope: storage name: 'storeLock' properties: { level: 'CanNotDelete' notes: 'Storage account should not be deleted.' } }
الخطوات التالية
للحصول على قائمة كاملة بأنواع موارد الملحقات، راجع أنواع الموارد التي توسع قدرات الموارد الأخرى.