ما هو Bicep؟

Bicep هي لغة خاصة بالمجال (DSL) تستخدم بناء الجملة التعريفي لنشر موارد Azure. في ملف Bicep، يمكنك تعريف البنية الأساسية التي تريد نشرها في Azure، ثم استخدام هذا الملف على مدار دورة حياة التطوير لنشر بنيتك الأساسية بشكل متكرر. تُنشر مواردك بطريقة متسقة.

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

ميزات Bicep

يوفر Bicep المزايا التالية:

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

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

    تستعرض الأمثلة التالية الفرق بين ملف Bicep وقالب JSON المكافئ. في كلا المثالين، يُنشر حساب تخزين.

    param location string = resourceGroup().location
    param storageAccountName string = 'toylaunch${uniqueString(resourceGroup().id)}'
    
    resource storageAccount 'Microsoft.Storage/storageAccounts@2021-06-01' = {
      name: storageAccountName
      location: location
      sku: {
        name: 'Standard_LRS'
      }
      kind: 'StorageV2'
      properties: {
        accessTier: 'Hot'
      }
    }
    

  • تجربة التأليف: عند استخدام ملحق Bicep للتعليمات البرمجية في Visual Studio لإنشاء ملفات Bicep، تحصل على تجربة تأليف من الدرجة الأولى. يوفر المحرر تحققاً ثرياً من الأمان من النوع والتحقق من الصحة والنحو.

    مثال على تأليف ملف Bicep

    يمكنك أيضا إنشاء ملفات Bicep في Visual Studio باستخدام ملحق Bicep ل Visual Studio.

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

  • التزامن: لا داعي للقلق بشأن تعقيدات ترتيب العمليات. تنظم Resource Manager في توزيع موارد مترابطة بحيث يتم إنشاؤها بالترتيب الصحيح. عندما يكون ذلك ممكناً، يقوم Resource Manager بنشر الموارد بالتوازي بحيث تنتهي عمليات التوزيع أسرع من عمليات النشر التسلسلية. يمكنك نشر الملف باستخدام أمر واحد، بدلاً استخدام أوامر حتمية متعددة.

    مقارنة توزيع Bicep

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

  • التكامل مع خدمات Azure: تم دمج Bicep مع خدمات Azure مثل نهج Azure ومواصفات القوالب والمخططات.

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

  • لا توجد ملفات حالة أو حالة لإدارتها: يتم تخزين كل الحالات في Azure. يمكن للمستخدمين التعاون والثقة في التعامل مع تحديثاتهم كما هو متوقع.

  • دون تكلفة ومصدر مفتوح: Bicep مجانية تماماً. لا يتعين عليك الدفع مقابل الإمكانات المتميزة. كما أنه مدعوم من دعم Microsoft.

الشروع في العمل

لبدء العمل من خلال Bicep عليك القيام بالتالي:

  1. تثبيت الأدوات. راجع إعداد بيئات تطوير ونشر Bicep. أو يمكنك استخدام REPO التعليمات البرمجية VS Devcontainer/Codespaces للحصول على بيئة تأليف مكونة مسبقاً.
  2. أكمل التشغيل السريعووحدات Learn Bicep.

لإلغاء التحويل البرمجي لقالب Azure Resource Manager موجود إلى Bicep، راجع إلغاء التحويل البرمجي لقالب Azure Resource Manager من JSON إلى Bicep. يمكنك استخدام Bicep Playground لعرض Bicep وما يعادله بلغة JSON جنباً إلى جنب.

للتعرف على الموارد المتوفرة في ملف Bicep، راجع مرجع مورد Bicep

ويمكن الاطلاع على أمثلة bicep في مستودع GitHub لـ Bicep.

حول اللغة

لا يُقصد من Bicep أن تكون لغة برمجة عامة لكتابة التطبيقات. يعلن ملف Bicep عن موارد Azure وخصائص الموارد، دون كتابة تسلسل من أوامر البرمجة لإنشاء الموارد.

لتتبع حالة العمل، راجع مستودع مشروع Bicep.

للتعرف على Bicep، راجع الفيديو التالي.

يمكنك استخدام Bicep بدلًا من JSON لتطوير قوالب Azure Resource Manager (قوالب ARM). يمكن أن تكون صيغة JSON لإنشاء قالب ARM مطولة وتتطلب تعبيرات معقدة. يقلل بناء جملة Bicep من هذا التعقيد ويحسن تجربة التطوير. Bicep هي عملية تجريد شفافة على قالب ARM JSON ولا تفقد أيًا من إمكانيات قالب JSON. أثناء النشر، يقوم Bicep CLI بتحويل ملف Bicep إلى ARM لقالب JSON.

أنواع الموارد وإصدارات API والخصائص الصالحة في قالب ARM صالحة في ملف Bicep.

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

للحصول على مقارنة كاملة للبنية، راجع مقارنة JSON وBicep للقوالب.

يدير Bicep تلقائياً التبعيات بين الموارد. يمكنك تجنب إعداد dependsOn عند استخدام الاسم الرمزي لمصدر في بيان مصدر آخر.

هيكل ملف Bicep أكثر مرونة من نموذج JSON. يمكنك إعلان المعلمات والمتغيرات والمخرجات في أي مكان في الملف. في JSON، يجب أن تعلن عن جميع المعلمات والمتغيرات والمخرجات داخل الأقسام المقابلة من القالب.

الخطوات التالية

ابدأ باستخدام بداية سريعة.

للحصول على إجابات للأسئلة الشائعة، راجع الأسئلة المتداولة حول Bicep.