البداية مع Azure Bicep (خطوة بخطوة)

هل تحتاج إلى بناء البنية التحتية في Azure؟ هل نظرت إلى قوالب ARM وتفكر، واو، يبدو معقدا؟ لأن العديد من الأشخاص اشتكوا من صعوبة بناء قوالب ARM، قامت مايكروسوفت بتطوير طبقة تجريد تسمى Azure Bicep.

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

لنبدأ!

المتطلبات الأولية

سيكون هذا البرنامج التعليمي عرضًا توضيحيًا عمليًا. إذا كنت ترغب في متابعة البرنامج التعليمي، تأكد من وجود ما يلي:

  • Windows 10 – ستعمل معظم العروض التوضيحية في هذا البرنامج التعليمي على أنظمة تشغيل أخرى ولكن جميع العروض التوضيحية ستستخدم Windows 10.
  • Visual Studio Code – سيتم استخدام الإصدار 1.60.2 في هذا البرنامج التعليمي.
  • مجموعة موارد Azure للنشر – سيتم استخدام مجموعة موارد تسمى ATA في هذا البرنامج التعليمي.

ما هو Azure Bicep؟

Bicep هو لغة مخصصة لنطاق محدد تجعل بناء قوالب ARM أسهل. يمكن اعتبار Bicep طبقة تجريد فوق قوالب ARM. تستخدم ARM JSON ويمكن أن تصبح معقدة، خاصة للنشرات الكبيرة.

قررت Microsoft إنشاء Bicep لتقليل التعقيدات وتحسين تجربة التطوير. إنها ليست لغة جديدة؛ اعتبرها تحسينًا لقوالب ARM JSON.

إعداد بيئة تطوير Bicep

لبدء تطوير قوالب Bicep ، تحتاج إلى إعداد بيئة تساعدك على تحقيق أفضل النتائج. للقيام بذلك ، لديك بعض الأدوات التي يمكنك استخدامها. لنقم أولاً بإعداد البيئة التي تحتاجها بما في ذلك ملحق VS Code Bicep ، أداة Bicep CLI وحزم Azure PowerShell اختياريًا.

تثبيت ملحق VS Code Bicep

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

افتح Visual Studio Code وانقر فوق زر الامتدادات.

Opening extensions

في شريط البحث، اكتب “bicep”. يجب أن ترى امتدادًا واحدًا لـ Bicep يظهر. عند حدوث هذا، انقر على تثبيت. بعد لحظات قليلة، سيقوم VS Code بتثبيت امتداد Bicep.

Search and install bicep extension

على الرغم من أن القسم التالي سيقدم لك قالب Bicep للنسخ/اللصق، فمن المؤكد أنه ستكون لديك أوقات تحتاج فيها إلى إنشاء قوالب Bicep من البداية. يأتي امتداد Bicep في VS Code مفيدًا هنا بشكل خاص بسبب ميزاته Intellisense.

لاحظ أنه إذا فتحت ملفًا بامتداد .bicep في VS Code، فسيحاول VS Code توفير اختصارات لك. على سبيل المثال، يمكنك إنشاء موارد Azure باستخدام الكلمة الأساسية resource في قالب Bicep. باستخدام امتداد Bicep المثبت، يفهم VS Code ذلك.

Typing the resource command

تحديد إحدى خيارات القائمة المقدمة يقوم تلقائيًا بإنشاء قالب للتعبئة بدلاً من الحاجة إلى تذكر الصيغة الدقيقة في كل مرة.

Blank bicep template

الفترة (.) هي اختصار مفيد آخر عند إنشاء قوالب Bicep. عند كتابة هذا في قسم الخصائص، على سبيل المثال، ستظهر لك جميع الخصائص المتاحة لحساب تخزين.

Properties available for a storage account

تثبيت Bicep CLI

بمجرد إنشاءها ، يجب عليك استدعاء قوالب Bicep عبر Bicep CLI. قبل محاولة تثبيت Bicep CLI ، تحقق أولاً مما إذا كان قد تم تثبيته بالفعل. اعتمادًا على إصدار Azure CLI الذي قمت بتثبيته ، قد يكون لديك Bicep CLI بالفعل. للتحقق ، افتح وحدة التحكم PowerShell أو الطرفية وتحقق من إصدار Bicep CLI.

	az bicep version

إذا كان لديك Bicep CLI مثبتًا ، ستظهر تصريحًا بالإصدار ، كما هو موضح أدناه.

Bicep CLI version

إذا رأيت رسالة خطأ حول عدم العثور على Bicep CLI ، قم بتشغيل الفرعية install لتثبيت Bicep CLI.

az bicep install

سوف ترى الآن الإخراج كما هو موضح أدناه. يؤكد أن Bicep CLI قد تم تثبيته بنجاح وجاهز للاستخدام.

Bicep installed successfully

كطريقة بديلة للتثبيت ، يمكنك أيضًا تثبيت Bicep CLI عبر مثبت Bicep لنظام التشغيل Windows.

إنشاء قالب Bicep لنشر حساب تخزين

يمكنك نشر بعض الموارد المعقدة في Azure باستخدام Bicep ولكن دعنا نبدأ ببطء. للقالب الأول الخاص بك في Bicep، دعنا ننشئ حساب تخزين Azure بسيط يمكنك استخدامه للنشر في Azure باستخدام كل من Azure CLI و PowerShell في الجزء التالي.

١. قم بفتح VS Code وإنشاء ملف جديد باسم main.bicep. لا يلزم أن تسمي الملف بالضبط كما هو موضح هنا ولكن اتباع أسلوب Terraform في تسمية القالب الرئيسي بامتداد .bicep هو شائع.

٢. قم بنسخ ولصق قالب Bicep التالي في الملف واحفظه. يحتوي هذا القالب على سمات مختلفة تشكل قالب Bicep.

سترى أولاً بعض السمات المشتركة في جميع قوالب Bicep:

  • معرف المورد (resource myStorage) – يخبر Bicep بإنشاء مورد جديد بالاسم myStorage. يحدد هذا الاسم المورد المحدد داخل قالب Bicep. هذا الاسم ليس اسم المورد الذي يتم إنشاؤه في Azure.
  • Microsoft.Storage/storageAccounts@2019-06-01 – يحدد نوعًا يتكون من مزود المورد Microsoft.Storage ونوع المورد (storageAccounts) وإصدار الواجهة البرمجية (2019-06-01) المستخدم.
  • name اسم المورد كما يظهر في Azure (تنتبه إلى قواعد وقيود تسمية موارد Azure.)
  • location – المنطقة في Azure لإنشاء المورد فيها.

سترى أيضًا بعض السمات الخاصة بنوع المورد storageAccounts:

  • SKU – نوع SKU لحساب التخزين (Standard_LRS) كما هو محدد في الخاصية name.
  • kind – نوع حساب التخزين (StorageV2).
  • properties خصائص متنوعة تخص المورد والتي ليس لها قسم خاص بها مثل accessTier في هذا المثال. هذه الخصائص متطابقة مع ما تجده في قوالب ARM.
resource myStorage 'Microsoft.Storage/storageAccounts@2019-06-01' = {
  name: 'ata2021bicepdiskstorage'
  location: 'uksouth'
  SKU: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
        
  }
}

نشر قالب Bicep باستخدام PowerShell

كما ذكرنا سابقًا، يمكنك نشر قوالب Bicep بإحدى الطريقتين؛ عبر Azure CLI ووحدة Azure PowerShell. دعنا نبدأ أولاً بنشر قالب Bicep باستخدام PowerShell.

تأكد من أن لديك وحدة Azure PowerShell مثبتة وأنك مصادق على Azure قبل بدء هذا القسم.

يتطابق نشر موارد Azure باستخدام قوالب Bicep تمامًا مع نشر قوالب ARM. لقد قامت Microsoft بإضافة دعم للغة Bicep إلى العديد من أوامر PowerShell ARM الموجودة، مثل New-AzResourceGroupDeployment.

في نافذة PowerShell الخاصة بك، قم بتنشيط نشر مجموعة موارد جديدة عبر أمر New-AzResourceGroupDeployment باستخدام مسار قالب Bicep و ResourceGroupName للنشر إليه. ستلاحظ أنه يمكنك استخدام قالب Bicep بنفس الطريقة التي يمكنك بها استخدام قالب ARM.

New-AzResourceGroupDeployment -TemplateFile main.bicep -ResourceGroupName ATA

إذا كان النشر ناجحًا، يجب أن ترى الإخراج التالي في جلسة PowerShell الخاصة بك، حيث يظهر الخاصية ProvisioningState كناجحة. هذا كل شيء!

Deploying resource with Bicep

للتحقق من نجاح إنشاء المورد، قم بتسجيل الدخول إلى بوابة Azure، انتقل إلى مجموعة الموارد الخاصة بك، وسترى داخل تلك المجموعة محتوى حساب تخزين تم إنشاؤه حديثًا.

Azure Portal

إذا كنت تتابع وقمت بإنشاء حساب تخزين كعرض توضيحي، لا تنسَ إزالته! لاحظ أن ResourceName يتطابق مع name المقدم في قالب Bicep.

Remove-AzResource -ResourceName ata2021bicepdiskstorage -ResourceGroupName ATA -ResourceType "Microsoft.Storage/storageAccounts"

سوف ترى الإخراج التالي الآن.

Removing an Azure storage account

نشر قالب Bicep باستخدام Azure CLI

لاستكمال هذا البرنامج التعليمي، دعنا نغطي الآن نشر قالب Bicep الذي تم بناؤه حديثًا باستخدام Azure CLI.

تأكد من أن لديك Azure CLI الإصدار v2.2.0+ مثبتًا وأنك قمت بتسجيل الدخول قبل بدء هذا القسم.

مع PowerShell أو غيرها من الطرفيات مفتوحة، قم بتنفيذ نشر ARM باستخدام الأمر az deployment group create. يقوم هذا الأمر بتنفيذ نشر ARM تمامًا كما هو الحال مع PowerShell. تأكد من تحديد resource-group للنشر إليه بالإضافة إلى القالب Bicep الذي تم إنشاؤه مسبقًا من خلال معلمة template-file.

az deployment group create --resource-group ATA --template-file main.bicep

إذا رأيت provisioningState كـ Succeeded، كما هو موضح أدناه، فقد قرأت ARM القالب Bicep ونفذت جميع التعليمات بنجاح!

provisioningState as Succeeded
Output in JSON from az deployment command

لا تنسى تنظيف المورد باستخدام az resource delete -g ATA -n ata2021bicepdiskstorage --resource-type "Microsoft.Storage/storageAccounts"

الاستنتاج

الآن لقد قمت بإنشاء بيئة تطوير لـ Azure Bicep وأنشأت موردًا في Azure، ما هو خطوتك التالية؟ ربما تلقي نظرة على ما تقدمه Microsoft Learn حول Bicep؟

ربما تقديم عرض توضيحي لزملائك عن كيفية مساعدة Bicep لمنظمتك؟

Source:
https://adamtheautomator.com/azure-bicep/