סיור במבנה התבנית של Azure Resource Manager

הושלמה

ביחידה זו, תלמד כיצד להשתמש בתבניות של Azure Resource Manager (תבניות ARM) כדי ליישם תשתית כקוד. אתה מסקר את המקטעים של תבנית ARM, לומד כיצד לפרוס את תבנית ARM שלך ב- Azure ומלמד פרטים אודות משאבים של תבנית ARM.

מהי תשתית כקוד?

תשתית מאפשרת לך לתאר באמצעות הקוד את התשתית הדרושה לך עבור האפליקציה שלך.

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

  • תצורות עקביות
  • מדרגיות משופרת
  • פריסות מהירות יותר
  • יכולת מעקב טובה יותר

סרטון וידאו זה מסביר את התשתית כקוד:

מהי תבנית ARM?

תבניות ARM הן קבצי JavaScript Object Notation (JSON) שמגדירים את התשתית והתצורה עבור הפריסה שלך. התבנית משתמשת בתחביר ותחביר הצהרתי. התחביר המוצהר הוא דרך לבניית המבנה והרכיבים המתארים כיצד המשאבים נראים מבלי לתאר את זרימת הפקד. תחביר הצהרתי שונה התחביר, המשתמש בפקודות לביצוע המחשב. Scripting הכרחי מתמקד בציון כל שלב בפריסת המשאבים.

תבניות ARM מאפשרות לך להצהיר על מה בכוונתך לפרוס מבלי לכתוב את רצף פקודות התיכנות כדי ליצור אותו. בתבנית ARM, עליך לציין את המשאבים ואת המאפיינים עבור משאבים אלה. מנהל המשאבים משתמש במידע זה כדי לפרוס את המשאבים בצורה מאורגנת ועקבית.

יתרונות השימוש בתבניות ARM

תבניות ARM מאפשרות לך להפוך פריסות לאוטומטיות ולהשתמש בשיטות העבודה של תשתית כקוד (IaC). קוד התבנית הופך לחלק מפרוייקטי התשתית והה פיתוח שלך. בדיוק כמו קוד יישום, באפשרותך לאחסן את קבצי IaC במאגר מקור ולבצע בו גירסה.

תבניות ARM הן idempotent, כלומר, באפשרותך לפרוס את אותה תבנית פעמים רבות ולקבל את אותם סוגי משאבים באותו מצב.

מנהל המשאבים מנהל את פריסת המשאבים כך שהם נוצרים בסדר הנכון. כאשר הדבר אפשרי, משאבים נוצרים במקביל, ולכן פריסות תבניות ARM מסתיימת מהר יותר מאשר פריסות עם Script.

דיאגרמה המציגה מיפוי של הליך עיבוד התבנית. קיימת קריאה אחת בלבד לעיבוד תבנית בניגוד למספר קריאות לעיבוד קבצי Script.

מנהל המשאבים כולל גם אימות מוכלל. הוא בודק את התבנית לפני תחילת הפריסה כדי לוודא שהפריסה מצליחה.

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

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

באפשרותך גם לשלב את תבניות ARM שלך בשילוב רציף וכלי פריסה רציפה (CI/CD), כגון Azure Pipelines, אשר יכולים להפוך את קווי צינור ההפצה לאוטומטיים עבור עדכוני אפליקציות ותשתיות מהירים ומהימנה. באמצעות משימות התבנית Azure DevOps ו- ARM, באפשרותך לבנות ולפרוס את הפרוייקטים שלך באופן רציף.

מבנה קובץ תבנית ARM

כאשר אתה כותב תבנית ARM, עליך להבין את כל החלקים הרכיבים את התבנית ואת הפעולות שהם עושים. קבצי תבנית ARM מורכבים מהרכיבים הבאים:

אלמנט תיאור
סכימה מקטע נדרש המגדיר את המיקום של קובץ הסכימה של JSON המתאר את המבנה של נתוני JSON. מספר הגירסה שבו אתה משתמש תלוי בטווח הפריסה ובעורך JSON שלך.
תוכן של מקטע נדרש המגדיר את גירסת התבנית שלך (כגון 1.0.0.0). באפשרותך להשתמש בערך זה כדי לתועד שינויים משמעותיים בתבנית שלך כדי לוודא שאתה פורס את התבנית הנכונה.
apiProfile מקטע אופציונלי המגדיר אוסף של גירסאות API עבור סוגי משאבים. באפשרותך להשתמש בערך זה כדי להימנע מהשימוש בגירסאות API עבור כל משאב בתבנית.
פרמטרים מקטע אופציונלי שבו אתה מגדיר ערכים המסופקים במהלך הפריסה. באפשרותך לספק ערכים אלה בקובץ פרמטר, לפי פרמטרים של שורת הפקודה או בפורטל Azure.
משתני מקטע אופציונלי שבו אתה מגדיר ערכים המשמשים לפשט ביטויי שפת תבנית.
פונקציות מקטע אופציונלי שבו ניתן להגדיר פונקציות המוגדרות על-ידי המשתמש הזמינות בתוך התבנית. פונקציות המוגדרות על-ידי המשתמש יכולות לפשט את התבנית שלך כאשר נעשה שימוש חוזר בביטויים מורכבים בתבנית שלך.
משאבים מקטע נדרש המגדיר את הפריטים בפועל שברצונך לפרוס או לעדכן בקבוצת משאבים או במנוי.
פלט מקטע אופציונלי שבו אתה מציין את הערכים המוחזרים בסוף הפריסה.

פריסת תבנית ARM ב- Azure

באפשרותך לפרוס תבנית ARM ב- Azure באחת מהדרכים הבאות:

  • פריסת תבנית מקומית
  • פריסת תבנית מקושרת
  • פריסה בצינור פריסה רציף

מודול זה מתמקד בפריסת תבנית ARM מקומית. במודולים עתידיים של Learn, תלמדו כיצד לפרוס תשתית מורכבת יותר וכיצד לשלב אותם עם Azure Pipelines.

כדי לפרוס תבנית מקומית, עליך להתקין Azure PowerShell או ממשק Azure באופן מקומי.

תחילה, היכנס ל- Azure באמצעות ממשק המשתמש של Azure או Azure PowerShell.

az login

לאחר מכן, הגדר את קבוצת המשאבים שלך. באפשרותך להשתמש בקבוצת משאבים שכבר מוגדרת או ליצור קבוצת משאבים חדשה באמצעות הפקודה הבאה. באפשרותך להשיג ערכי מיקום זמינים מ: az account list-locations (CLI) או Get-AzLocation (PowerShell). באפשרותך לקבוע את התצורה של מיקום ברירת המחדל באמצעות az configure --defaults location=<location>.

az group create \
  --name {name of your resource group} \
  --location "{location}"

כדי להתחיל פריסת תבנית בקבוצת המשאבים, השתמש בפקודה Azure CLI az deployment group create or the Azure PowerShell command New-AzResourceGroupDeployment.

תשר

ההבדל בין az deployment group create ל- az group deployment create הוא az group deployment create פקודה ישנה שהוצאה משימוש תוחלף על-ידי az deployment group create. לכן, מומלץ להשתמש az deployment group create לפריסת משאבים תחת טווח קבוצת המשאבים.

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

כדי להפעיל פקודת פריסה זו, דרושה לך העדכנית ביותר ממשק שורת הפקודה של Azure.

templateFile="{provide-the-path-to-the-template-file}"
az deployment group create \
  --name blanktemplate \
  --resource-group myResourceGroup \
  --template-file $templateFile

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

צינור CI/CD הופך את היצירה והפריסה של פרוייקטי פיתוח לאוטומטיים, הכוללים פרוייקטים של תבניות ARM. שני הצינורות הנפוצים ביותר לפריסת תבניות הם Azure Pipelines או GitHub Actions.

מידע נוסף אודות שני סוגי פריסה אלה מכוסה במודולים אחרים.

הוספת משאבים לתבנית

כדי להוסיף משאב לתבנית שלך, עליך להכיר את ספק המשאבים ואת סוגי המשאבים שלו. התחביר של שילוב זה הוא בתבנית של {resource-provider}/{resource-type}. לדוגמה, כדי להוסיף משאב של חשבון אחסון לתבנית שלך, עליך Microsoft.Storage ספק המשאבים. אחד הסוגים עבור ספק זה הוא storageAccount. לכן, סוג המשאב מוצג כקובץ Microsoft.Storage/storageAccounts. באפשרותך להשתמש ברשימה של ספקי עבור שירותי Azure את הספקים הדרושים לך.

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

צילום מסך של דף תיעוד של Microsoft המציג את תיעוד חשבון האחסון שנבחר.

להלן דוגמה של כמה מהמאפיינים המפורטים בדף 'חשבונות אחסון':

צילום מסך של דף תיעוד של Microsoft המציג כמה מהמאפיינים של חשבון האחסון.

לדוגמת האחסון שלנו, התבנית שלך עשויה להיראות כך:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.1",
  "apiProfile": "",
  "parameters": {},
  "variables": {},
  "functions": [],
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2025-01-01",
      "name": "learntemplatestorage123",
      "location": "westus",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ],
  "outputs": {}
}