قوالب نمطية

مكتمل

عند استخدام قوالب Azure Resource Manager، من الأفضل أن يتم دمجها في وحدات عن طريق تقسيمها إلى مكونات فردية.

تتمثل المنهجية الأساسية للاستخدام في استخدام قوالب مرتبطة.

فهو يسمح لك بتجزئة الحل إلى مكونات مستهدفة وإعادة استخدام تلك العناصر المختلفة عبر عمليات نشر مختلفة.

القالب المرتبط

أضف مورد نشر إلى القالب الرئيسي لربط قالب بآخر.

"resources": [
  {
      "apiVersion": "2017-05-10",
      "name": "linkedTemplate",
      "type": "Microsoft.Resources/deployments",
      "properties": {
          "mode": "Incremental",
          <link-to-external-template>
      }
  }
]


القالب المتداخل

يمكنك أيضا تداخل قالب داخل القالب الرئيسي، واستخدام خاصية القالب، وتحديد بناء جملة القالب.

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

"resources": [
  {
    "apiVersion": "2017-05-10",
    "name": "nestedTemplate",
    "type": "Microsoft.Resources/deployments",
    "properties": {
      "mode": "Incremental",
      "template": {
        "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "resources": [
          {
            "type": "Microsoft.Storage/storageAccounts",
            "name": "[variables('storageName')]",
            "apiVersion": "2015-06-15",
            "location": "West US",
            "properties": {
              "accountType": "Standard_LRS"
            }
          }
        ]
      }
    }
  }
]

إشعار

لا يمكنك استخدام المعلمات أو المتغيرات المعرفة داخل القالب المتداخل نفسه بالنسبة للقوالب المتداخلة. يمكنك فقط استخدام المعلمات والمتغيرات من القالب الرئيسي.

تختلف الخصائص التي توفرها لمورد التوزيع استنادا إلى الارتباط بقالب خارجي أو تداخل قالب مضمن داخل القالب الرئيسي.

أوضاع النشر

عند نشر الموارد باستخدام القوالب، تتوفر لديك ثلاثة خيارات:

  • التحقق من صحة. يقوم هذا الخيار بتجميع القوالب، والتحقق من صحة النشر، ويضمن أن القالب يعمل (على سبيل المثال، لا توجد تبعيات دائرية)، وبناء الجملة الصحيح.
  • الوضع التزايدي (افتراضي). يقوم هذا الخيار بنشر كل ما يتم تعريفه في القالب فقط. لا يزيل أو يعدل أي موارد غير محددة في القالب. على سبيل المثال، إذا قمت بنشر جهاز VM عبر قالب ثم إعادة تسمية الجهاز الظاهري في القالب، سيبقى أول VM نشر بعد إعادة تشغيل القالب. هذا هو الوضع الافتراضي.
  • الوضع الكامل: يحذف Resource Manager الموارد الموجودة في مجموعة الموارد، ولكنها غير محددة في القالب. على سبيل المثال، الموارد المعرفة في القالب فقط ستكون موجودة في مجموعة الموارد بعد نشر القالب. وكممارسة أفضل، استخدم هذا الوضع لبيئات الإنتاج لتحقيق بيئة غير متزامنة في قوالب النشر.

عند النشر باستخدام PowerShell، لتعيين وضع النشر استخدم المعلمة Mode، وفقا لمثال القالب المتداخلة سابقا في هذا الموضوع.

إشعار

وكممارسة أفضل، استخدم مجموعة موارد واحدة لكل عملية نشر.

إشعار

يمكنك فقط استخدام وضع النشر incremental لكل من القوالب المرتبطة والمتداخلة.

قالب خارجي ومعلمات خارجية

للارتباط بقالب خارجي وملف معلمة، استخدم templateLinkوparametersLink.

عند الارتباط بقالب، تأكد من أن خدمة إدارة الموارد يمكنها الوصول إليه.

على سبيل المثال، لا يمكنك تحديد ملف محلي أو ملف متوفر فقط على الشبكة المحلية.

يمكنك فقط توفير قيمة معرف المورد الموحد (URI) التي تتضمن HTTP أو HTTPS.

أحد الخيارات هو وضع القالب المرتبط في حساب تخزين واستخدام URI لهذا العنصر.

يمكنك أيضا توفير المعلمة المضمنة. ومع ذلك، لا يمكنك استخدام كل من المعلمات المضمنة والارتباط بملف معلمة.

يستخدم المثال التالي المعلمة templateLink:

  "resources": [
    {
      "name": "linkedTemplate",
      "type": "Microsoft.Resources/deployments",
      "apiVersion": "2018-05-01",
      "properties": {
          "mode": "Incremental",
          "templateLink": {
              "uri":"https://linkedtemplateek1store.blob.core.windows.net/linkedtemplates/linkedStorageAccount.json?sv=2018-03-28&sr=b&sig=dO9p7XnbhGq56BO%2BSW3o9tX7E2WUdIk%2BpF1MTK2eFfs%3D&se=2018-12-31T14%3A32%3A29Z&sp=r"
          },
          "parameters": {
              "storageAccountName":{"value": "[variables('storageAccountName')]"},
              "location":{"value": "[parameters('location')]"}
          }
      }
    },


تأمين قالب خارجي

على الرغم من أن القالب المرتبط يجب أن يكون متوفرا خارجيا، إلا أنه لا يحتاج إلى إتاحته للجمهور.

بدلا من ذلك، يمكنك إضافة القالب إلى حساب تخزين خاص يمكن الوصول إليه لمالك حساب التخزين فقط، وإنشاء رموز مميزة لتوقيع الوصول المشترك (SAS) لتمكين الوصول أثناء النشر.

إضافة الرمز المميز SAS إلى URI للقالب المرتبط.

على الرغم من أن يتم تمرير الرمز المميز في كسلسلة آمنة، يتم تسجيل URI القالب المرتبط، بما في ذلك الرمز المميز SAS، في عمليات النشر.

للحد من التعرض، يمكنك أيضا تعيين تاريخ انتهاء صلاحية الرمز المميز.