تعريف الموارد الملحقة

مكتمل

يتم إرفاق الموارد الملحقة دائمًا بموارد Azure الأخرى. وهي توسع سلوك تلك الموارد بوظائف إضافية.

بعض الأمثلة على الموارد الملحقة الشائعة تتمثل فيما يلي:

الاسم نوع المورد
تعيينات الأدوار Microsoft.Authorization/roleAssignments
تعيينات النهج Microsoft.Authorization/policyAssignments
أقفال Microsoft.Authorization/locks
إعدادات التشخيص Microsoft.Insights/diagnosticSettings

على سبيل المثال، ضع في اعتبارك استخدام قفل، والذي يمكن استخدامه لمنع حذف مورد Azure أو تعديله. ليس من المنطقي توزيع قفل في حد ذاته. بل يجب دائمًا توزيعه على مورد آخر.

ملاحظة

تُعرض الأوامر في هذه الوحدة لتوضيح المفاهيم. لا تقم بتشغيل الأوامر بعد. ستتدرب على ما تتعلمه هنا قريبًا.

كيف يتم تعريف الموارد الملحقة؟

في Bicep، يمكنك تعريف مورد ملحق في الغالب بنفس الطريقة مثل المورد العادي. ومع ذلك، يمكنك إضافة الخاصية scope لإخبار Bicep أن المورد يجب إرفاقه بمورد آخر محدد في مكان آخر في ملف Bicep. يمكنك استخدام اسم المورد الرمزي للإشارة إليه. على سبيل المثال، إليك تعريف حساب Azure Cosmos DB الذي أنشأناه سابقًا:

resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2020-04-01' = {
  name: cosmosDBAccountName
  location: location
  properties: {
    // ...
  }
}

دعونا نضيف قفل الموارد، والذي سوف يمنع أي شخص من حذف حساب Azure Cosmos DB:

resource lockResource 'Microsoft.Authorization/locks@2016-09-01' = {
  scope: cosmosDBAccount
  name: 'DontDelete'
  properties: {
    level: 'CanNotDelete'
    notes: 'Prevents deletion of the toy data Cosmos DB account.'
  }
}

لاحظ أن المثال يستخدم الخاصية scope مع الاسم الرمزي لحساب Azure Cosmos DB. وهذا يخبر Bicep أن يعمل على توزيع قفل المورد على حساب DB Cosmos Azure، مما يعني أنه لم يعد من الممكن حذفه.

معرفات الموارد الملحقة

يضم المورد الملحق معرّفًا مختلفًا قليلاً عن الموارد الأخرى. وهو يتألف من معرف المورد الأصل الخاص به، والفواصل /providers/، و معرف المورد الملحق.

لنفترض أنك تعمل على توزيع حساب Azure Cosmos DB المذكور سابقًا، وتمت تسمية الحساب toyrnd. إليك الشكل الذي سيبدو عليه معرف مورد القفل:

/subscriptions/f0750bbe-ea75-4ae5-b24d-a92ca601da2c/resourceGroups/ToyDevelopment/providers/Microsoft.DocumentDB/databaseAccounts/toyrnd/providers/Microsoft.Authorization/locks/DontDelete

فيما يلي تمثيل مرئي على ذلك:

Extension resource ID for a resource lock applied to an Azure Cosmos DB account, split with the key-value pair on a separate line.

إذا رأيت معرف مورد يبدأ بمعرف مورد عادي ثم يضيف /providers/ ونوع مورد آخر واسمًا آخر، فهذا يعني أنك تبحث عن معرف مورد ملحق.