البدء السريع: إنشاء وتوزيع مواصفات القالب

يوضح لك هذا البدء السريع كيفية تجميع قالب Azure Resource Manager (قالب ARM) في مواصفات القالب. بعد ذلك، تقوم بنشر مواصفات هذا القالب. تحتوي مواصفات النموذج الخاص بك على قالب ARM ينشر حساب تخزين.

تلميح

نوصي باستخدام Bicep لأنها تقدم نفس الإمكانات التي توفرها نماذج ARM ولأن البنية أسهل في الاستخدام. لمعرفة المزيد، راجع Quickstart: إنشاء وتوزيع مواصفات قالب باستخدام Bicep.

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

حساب Azure مع اشتراك نشط. أنشئ حساباً مجاناً.

إشعار

لاستخدام مواصفات القالب مع Azure PowerShell، يجب تثبيت الإصدار 5.0.0 أو إصدار أحدث. لاستخدامه مع Azure CLI، استخدم الإصدار 2.14.2 أو إصدار أحدث.

إنشاء قالب

إنشاء مواصفات قالب من قالب محلي. نسخ القالب التالي وحفظه محلياً إلى ملف اسمه azuredeploy.json. تفترض هذه البداية السريعة أنك قمت بحفظ مسارc:\Templates\azuredeploy.json ولكن يمكنك استخدام أي مسار.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.13.1.58284",
      "templateHash": "13120038605368246703"
    }
  },
  "parameters": {
    "storageAccountType": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GRS",
        "Standard_GZRS",
        "Standard_LRS",
        "Standard_RAGRS",
        "Standard_RAGZRS",
        "Standard_ZRS"
      ],
      "metadata": {
        "description": "Storage Account type"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "The storage account location."
      }
    },
    "storageAccountName": {
      "type": "string",
      "defaultValue": "[format('store{0}', uniqueString(resourceGroup().id))]",
      "metadata": {
        "description": "The name of the storage account"
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2022-09-01",
      "name": "[parameters('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageAccountType')]"
      },
      "kind": "StorageV2",
      "properties": {}
    }
  ],
  "outputs": {
    "storageAccountName": {
      "type": "string",
      "value": "[parameters('storageAccountName')]"
    },
    "storageAccountId": {
      "type": "string",
      "value": "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
    }
  }
}

إنشاء مواصفات القالب

مواصفات القالب هي نوع مورد يسمى Microsoft.Resources/templateSpecs. لإنشاء مواصفات قالب، استخدم PowerShell أو Azure CLI أو المدخل أو قالب ARM.

  1. إنشاء مجموعة موارد جديدة لاحتواء مواصفات القالب.

    New-AzResourceGroup `
      -Name templateSpecRG `
      -Location westus2
    
  2. إنشاء مواصفات القالب في مجموعة الموارد تلك. إعطاء المواصفات قالب جديد اسم storageSpec.

    New-AzTemplateSpec `
      -Name storageSpec `
      -Version "1.0" `
      -ResourceGroupName templateSpecRG `
      -Location westus2 `
      -TemplateFile "c:\Templates\azuredeploy.json"
    

مواصفات قالب التوزيع

لنشر مواصفات قالب، استخدم نفس أوامر النشر التي ستستخدمها لنشر قالب. قم بتمرير معرف المورد لمواصفات القالب ليتم النشر.

  1. قم بإنشاء مجموعة موارد لاحتواء حساب التخزين الجديد.

    New-AzResourceGroup `
      -Name storageRG `
      -Location westus2
    
  2. الحصول على معرف المورد من المواصفات القالب.

    $id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "1.0").Versions.Id
    
  3. نشر القالب المحدد.

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG
    
  4. يمكنك توفير المعلمات تماما كما تفعل لقالب ARM. إعادة توزيع مواصفات القالب باستخدام معلمة لنوع حساب التخزين.

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG `
      -storageAccountType Standard_GRS
    

منح حق الوصول

إذا كنت تريد السماح للمستخدمين الآخرين في مؤسستك بنشر مواصفات القالب، فستحتاج إلى منحهم حق الوصول للقراءة. يمكنك تعيين دور القارئ إلى مجموعة Microsoft Entra لمجموعة الموارد التي تحتوي على مواصفات القالب التي تريد مشاركتها. لمزيد من المعلومات، راجع البرنامج التعليمي: منح وصول مجموعة إلى موارد Azure باستخدام Azure PowerShell.

تحديث قالب

لنفترض أنك حددت تغييراً تريد إجراءه على القالب في مواصفات القالب الخاص بك. يتشابه القالب التالي مع القالب السابق إلا إنه يضيف بادئة لاسم حساب التخزين. نسخ القالب التالي وتحديث ملف azuredeploy.json.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccountType": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_ZRS",
        "Premium_LRS"
      ],
      "metadata": {
        "description": "Storage Account type"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    },
    "namePrefix": {
      "type": "string",
      "maxLength": 11,
      "defaultValue": "store",
      "metadata": {
        "description": "Prefix for storage account name"
      }
    }
  },
  "variables": {
    "storageAccountName": "[concat(parameters('namePrefix'), uniquestring(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-04-01",
      "name": "[variables('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageAccountType')]"
      },
      "kind": "StorageV2",
      "properties": {}
    }
  ],
  "outputs": {
    "storageAccountName": {
      "type": "string",
      "value": "[variables('storageAccountName')]"
    }
  }
}

تحديث إصدار مواصفات القالب

بدلاً من إنشاء مواصفات قالب جديدة للقالب المنقح، أضف إصداراً جديداً يسمى 2.0 إلى مواصفات القالب الموجودة.

  1. إنشاء نسخة جديدة لمواصفات النموذج.

    New-AzTemplateSpec `
      -Name storageSpec `
      -Version "2.0" `
      -ResourceGroupName templateSpecRG `
      -Location westus2 `
      -TemplateFile "c:\Templates\azuredeploy.json"
    
  2. لنشر الإصدار الجديد، احصل على معرف المورد 2.0 للإصدار.

    $id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "2.0").Versions.Id
    
  3. توزيع ذلك النموذج. توفير بادئة لاسم حساب التخزين.

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG `
      -namePrefix "demoaccount"
    

تنظيف الموارد

لتنظيف المورد الذي قمت بنشره في هذه البداية السريعة، حذف كل من مجموعات الموارد التي قمت بإنشائها.

  1. من مدخل Azure، حدد مجموعة الموارد من القائمة اليمنى.

  2. أدخل اسم مجموعة الموارد (templateSpecRG وstorageRG) في حقل التصفية حسب الاسم.

  3. حدد اسم مجموعة الموارد.

  4. حدد Delete resource group من القائمة.

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

للتعرف على كيفية إنشاء مواصفات قالب تتضمن قوالب مرتبطة، راجع إنشاء مواصفات قالب لقالب مرتبط.