מהו Bicep?

הושלם

כעת, לאחר שהצוות שלך מבין כיצד Azure Resource Manager פועל, אתה מחליט להשתמש בתבניות ARM להקצאת משאבים. אתה מבין שבאפשרותך לכתוב תבניות ARM בשתי דרכים שונות: באמצעות JSON או באמצעות Bicep. ברצונך לקבל מידע נוסף על תבניות Bicep כדי שתוכל לקבל החלטה מושכלת לגבי השפה שבה יש להשתמש.

ביחידה זו, תלמדו על שפת התבנית של Bicep ועל היתרונות שהיא מספקת לעריכה באמצעות תבניות.

שפת Bicep

Bicep היא שפת תבניות של מנהל המשאבים המשמשת לפריסת משאבי Azure באופן הצהרתי. Bicep מיועד לתרחיש ספציפי או תחום, מה שהופכת אותו לשפה ספציפית לתחום. Bicep לא נועד לשמש כתכנתת תכנות סטנדרטית עבור אפליקציות כתיבה. Bicep משמש רק ליצירת תבניות של מנהל המשאבים. Bicep נועד להיות קל להבנה וללמידה פשוטה, ללא קשר לניסיון שלך עם שפות תיכנות אחרות. כל סוגי המשאבים, גירסאות ה- API והמאפיינים חוקיים בתבניות Bicep.

הערה

אם חיפשת בעבר שימוש בתבניות JSON, ייתכן שהבחנו ש- Bicep מפשט את חוויית יצירת התבנית. הוא מספק תחביר קל יותר להבנה, תמיכה טובה יותר במודלריות ובקוד הניתן לשימוש חוזר ובבטיחות סוג משופרת. יצירת תבנית JSON ARM דורשת ביטויים מורכבים, והתוצאה הסופית עשויה להיות מילולית.

היתרונות של Bicep

Bicep מספק שיפורים רבים דרך JSON לעריכה של תבניות, כולל:

  • תחביר: Bicep מספק תחביר פשוט יותר עבור תבניות כתיבה. באפשרותך להפנות ישירות לפרמטרים ולמשתנים, מבלי להשתמש בפונקציות מורכבות. אינטרפולציה של מחרוזות משמשת במקום שרשור כדי לשלב ערכים עבור שמות ופריטים אחרים. באפשרותך להפנות ישירות למאפיינים של משאב על-ידי שימוש בשם הסמלי שלו במקום במשפטי הפניה מורכבים. שיפורים בתחביר אלה מסייעים הן בעריכה והן בקריאה של תבניות Bicep.

  • מודולים: באפשרותך לפיצול פריסות תבנית מורכבות לקבצי מודול קטנים יותר ולהפנה אליהם בתבנית הראשית. מודולים אלה מספקים ניהול קל יותר ושימוש חוזר גדול יותר. תוכל גם לשתף את המודולים שלך עם הצוות שלך.

  • ניהול תלות אוטומטי: ברוב המקרים, Bicep מזהה באופן אוטומטי יחסי תלות בין המשאבים שלך. תהליך זה מסיר חלק מהעבודה המעורבת בעריכה של תבניות.

  • Type ו- IntelliSense: ההרחבה Bicep עבור Visual Studio Code כוללת אימות עשיר ו- IntelliSense עבור כל הגדרות ה- API של סוגי המשאבים של Azure. תכונה זו עוזרת לספק חוויית עריכה קלה יותר.

עיין בדוגמה הבאה של תבנית Bicep שמגדירה חשבון אחסון של Azure. התבנית יוצרת באופן אוטומטי את השם של חשבון האחסון. לאחר הפריסה, מזהה המשאב מוחזר כפלט למשתמש שמבצע את התבנית.

param location string = resourceGroup().location
param namePrefix string = 'storage'

var storageAccountName = '${namePrefix}${uniqueString(resourceGroup().id)}'
var storageAccountSku = 'Standard_RAGRS'

resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
  name: storageAccountName
  location: location
  kind: 'StorageV2'
  sku: {
    name: storageAccountSku
  }
  properties: {
    accessTier: 'Hot'
    supportsHttpsTrafficOnly: true
  }
}

output storageAccountId string = storageAccount.id