تعريف الموارد

مكتمل

تُعد قوالب Bicep هي الملفات التي تقوم بكتابتها. وهي تقوم بتعريف موارد Azure التي سيتم نشرها.

تحتاج منك شركة الألعاب التي تتعامل معها إنشاء قالب Bicep قابل لإعادة الاستخدام لعمليات إطلاق المنتج. يحتاج القالب إلى نشر حساب تخزين Azure وموارد Azure App Service، والتي سيتم استخدامها لتسويق كل منتج جديد أثناء إطلاقه.

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

تعريف المورد

إن الأمر الأساسي الذي تفعله باستخدام قوالب Bicep هو تعريف موارد Azure الخاصة بك. فيما يلي مثال يوضح تعريف المورد النموذجي في Bicep. يقوم هذا المثال بإنشاء حساب تخزين باسم toylaunchstorage.

resource storageAccount 'Microsoft.Storage/storageAccounts@2021-08-01' = {
  name: 'toylaunchstorage'
  location: 'westus3'
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
  }
}

دعونا نتعرف أكثر على بعض الأجزاء الرئيسية من تعريف المورد هذا:

  • تقوم الكلمة الأساسية resource في البداية بإعلام Bicep بأنك على وشك التعريف بالمورد.
  • وبعد ذلك، تقوم بمنح المورد اسماً رمزياً. يكون الاسم الرمزي للمورد في المثال هو storageAccount. يتم استخدام الأسماء الرمزية داخل Bicep للإشارة إلى المورد، ولكنها لن تظهر أبداً في Azure.
  • إن Microsoft.Storage/storageAccounts@2021-08-01 هو نوع المورد وإصدار واجهة برمجة التطبيقات (API) الخاص بالمورد. يقوم Microsoft.Storage/storageAccounts بإعلام Bicep بأنك تُعلن عن حساب تخزين Azure. إن 2021-08-01 هو الإصدار الخاص بواجهة برمجة تطبيقات Azure Storage الذي سيستخدمه Bicep عندما يقوم بإنشاء المورد.

    تلميح

    يساعدك ملحق Visual Studio Code لـ Bicep في العثور على أنواع الموارد وإصدارات واجهة برمجة التطبيقات (API) للموارد التي تنشئها. إذا كانت لديك خبرة بقوالب ARM، فيرجى العلم بأن إصدار واجهة برمجة التطبيقات (API) يطابق الإصدار الذي ستستخدمه هناك أيضاً.

  • يتعين عليك أن تُعلن عن اسم المورد، وهو الاسم الذي سيقوم حساب التخزين بتعيينه في Azure. تقوم بتعيين اسم المورد الذي يستخدم الكلمة الأساسية name.

    هام

    تُستخدم الأسماء الرمزية داخل قالب Bicep فقط ولا تظهر في Azure. إن أسماء الموارد تظهر بالفعل في Azure.

  • ثم تقوم بتعيين تفاصيل أخرى للمورد، مثل موقعه، وSKU (مستوى الأسعار)، ونوعه. توجد أيضاً خصائص يمكنك تعريفها، والتي تختلف حسب كل نوع من أنواع الموارد. قد تقدم إصدارات واجهة برمجة التطبيقات المختلفة خصائص مختلفة أيضًا. في هذا المثال، نحن نقوم بإعداد مستوى الوصول لحساب التخزين إلى Hot.

تلميح

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

ماذا يحدث عندما تعتمد الموارد على بعضها البعض؟

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

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

resource appServicePlan 'Microsoft.Web/serverFarms@2021-03-01' = {
  name: 'toy-product-launch-plan'
  location: 'westus3'
  sku: {
    name: 'F1'
  }
}

يقوم تعريف المورد هذا بإعلام Bicep بأنك تريد توزيع خطة App Service، التي تحتوي على نوع المورد Microsoft.Web/serverFarms. تمت تسمية مورد الخطة toy-product-launch-plan وتم توزيعه في منطقة 3 غرب الولايات المتحدة. ويستخدم SKU الخاص بـ F1 لمستوى التسعير، وهو المستوى المجاني من App Service.

والآن بعد أن أعلنت خطة App Service، فإن الخطوة التالية هي إعلان التطبيق:

resource appServiceApp 'Microsoft.Web/sites@2021-03-01' = {
  name: 'toy-product-launch-1'
  location: 'westus3'
  properties: {
    serverFarmId: appServicePlan.id
    httpsOnly: true
  }
}

يوجه هذا القالب Azure لاستضافة التطبيق على الخطة التي قمت بإنشائها. لاحظ أن التعريف الخاص بالخطة يتضمن الاسم الرمزي لخطة App Service في هذا السطر: serverFarmId: appServicePlan.id. هذا السطر يعني أن Bicep سيحصل على معرف مورد للخطة يستخدم الخاصية .id. إنه يقول بوضوح إن "معرف مزرعة الخوادم الخاصة بالتطبيق هو معرف خطة App Service الذي تم تعريفه مسبقاً".

تلميح

في Azure، يكون معرف المورد هو معرف فريد لكل مورد. يتضمن معرف المورد معرف اشتراك Azure، واسم مجموعة الموارد، واسم المورد، بالإضافة إلى بعض المعلومات الأخرى.

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