نشر قوالب في نطاقات مختلفة

مكتمل

أنت الآن تفهم النطاقات المختلفة التي يمكنك نشر الموارد فيها. في هذه الوحدة، ستتعلم كيفية بدء كتابة ملفات Bicep لنشرها في هذه النطاقات.

تحديد النطاق المستهدف لملف Bicep

يحتاج Bicep إلى معرفة النطاق الذي يتم نشر ملف فيه. هذه المعلومات مهمة، لأن Bicep تحتاج إلى التأكد من أن الموارد التي تقوم بنشرها صالحة للنطاق الذي تستخدمه. على سبيل المثال، يحذرك ملحق Bicep للتعليمات البرمجية Visual Studio إذا حاولت تعريف مورد في نطاق غير مدعوم.

targetScope استخدم الكلمة الأساسية لإخبار Bicep بأن الموارد الموجودة في الملف مخصصة لنطاق معين. فيما يلي مثال على ملف Bicep الذي ينشر الموارد في نطاق مجموعة الإدارة:

targetScope = 'managementGroup'

resource policyDefinition 'Microsoft.Authorization/policyDefinitions@2024-05-01' = {
  // ...
}

لاحظ أنك تطلب من Bicep نشر الموارد في نطاق مجموعة إدارة، ولكنك لا تحدد مجموعة الإدارة. عند نشر القالب، ستعلم Bicep بالضبط مجموعة الإدارة التي تريد نشر الموارد إليها. توفر Azure CLI وAzure PowerShell cmdlet الوسائط لتحديد هذه المعلومات.

يمكنك تعيين targetScope لملفك إلى resourceGroupأو subscriptionmanagementGroupأو أو tenant. إذا لم تحدد نطاقا مستهدفا، تفترض resourceGroup Bicep النطاق.

إنشاء مجموعات الموارد

الآن بعد أن فهمت كيفية إنشاء عمليات نشر في نطاقات مختلفة، حاول تطبيق هذا الفهم لإنشاء مجموعة موارد، وهي مورد ذو نطاق الاشتراك:

targetScope = 'subscription'

resource resourceGroup 'Microsoft.Resources/resourceGroups@2024-07-01' = {
  name: 'example-resource-group'
  location: 'westus'
}

في هذا المثال، لاحظ أن ملف Bicep يحتوي على targetScope من subscription، ما يعني أن Bicep تعتبر جميع الموارد الموجودة في الملف ذات نطاق اشتراك بشكل افتراضي.

إشعار

سترى كيفية استخدام Bicep لإنشاء اشتراكات Azure ومجموعات الإدارة لاحقًا في هذه الوحدة النمطية.

إرسال نشر

عند بدء عملية توزيع، تحتاج إلى إخبار Azure بالنطاق الذي تريد نشره فيه. وهذا يعني استخدام أمر مختلف لـ Azure CLI لكل نطاق نشر، كما هو موضح هنا:

للنشر في هذا النطاق: ⁩شغِّل أمر Azure CLI⁧ هذا:
مجموعة الموارد az deployment group create
الاشتراك az deployment sub create
مجموعة الإدارة az deployment mg create
المستأجر az deployment tenant create

عند بدء عملية توزيع، تحتاج إلى إخبار Azure بالنطاق الذي تريد نشره فيه. وهذا يعني استخدام PowerShell cmdlet مختلف لكل نطاق نشر كما هو موضح هنا:

للنشر في هذا النطاق: استخدم PowerShell cmdlet هذا:
مجموعة الموارد New-AzResourceGroupDeployment
الاشتراك New-AzSubscriptionDeployment
مجموعة الإدارة New-AzManagementGroupDeployment
المستأجر New-AzTenantDeployment

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

  • الموقع: يجب تخزين بيانات تعريف التوزيع في موقع تحدده. لا تحتاج إلى تحديد موقع لنشر نطاق مجموعة الموارد، لأن بيانات تعريف التوزيع تستخدم نفس موقع مجموعة الموارد. ومع ذلك، عند إنشاء توزيع في نطاق الاشتراك أو مجموعة الإدارة أو المستأجر، تحتاج إلى تحديد منطقة Azure التي يتم تخزين بيانات تعريف التوزيع فيها. لا يتم دائما إنشاء الموارد الخاصة بالنشر في هذه النطاقات في نفس الموقع الذي حددته لبيانات التعريف.

  • الاسم: جميع عمليات النشر في Azure لها اسم. يمكنك أن تطلب من Azure معلومات حول نشر باستخدام اسمه. عند استخدام Azure CLI أو Azure PowerShell لإرسال عملية توزيع، لا تحتاج إلى تحديد الاسم. ولكن إذا لم تفعل ذلك، يتم استخدام اسم ملف ملف القالب كاسم نشر.

يجب أن تكون تركيبة النطاق والموقع والاسم الخاصين بالتوزيع فريدة. على سبيل المثال، لنفترض أنك أنشأت نشر اشتراك باسم my-deployment واستخدم موقع شرق الولايات المتحدة لتخزين بيانات التعريف الخاصة به. لا يمكنك إنشاء نشر آخر لنفس الاشتراك المسمى my-deploymentأيضا ، حتى لو كان في موقع مختلف مثل غرب أوروبا. إذا قمت بإنشاء نشر آخر يسمى my-deployment في شرق الولايات المتحدة، فإنه يحل محل التوزيع الحالي.