استخدام Azure PowerShell لتصدير قالب

للمساعدة في إنشاء قوالب مدير موارد Azure، يمكنك تصدير قالب من الموارد الموجودة. يساعدك القالب الذي تم تصديره على فهم بنية JSON والخصائص التي توزع مواردك. لأتمتة عمليات التوزيع المستقبلية، ابدأ بالقالب الذي تم تصديره، وقم بتعديله وفقاً للسيناريو الخاص بك. تحاول عملية قالب التصدير إنشاء قالب قابل للاستخدام. ومع ذلك، تتطلب معظم القوالب التي تم تصديرها بعض التعديلات قبل استخدامها لتوزيع موارد Azure.

يمكّنك Resource Manager من اختيار مورد واحد أو أكثر للتصدير إلى قالب. يمكنك التركيز على الموارد التي تحتاجها تحديداً في القالب.

توضح هذه المقالة كيفية تصدير القوالب من خلال Azure PowerShell. للاطلاع على خيارات أخرى، راجع:

اختيار خيار التصدير المناسب

هناك طريقتان لتصدير قالب:

  • تصدير من مجموعة الموارد أو الموارد. ينشئ هذا الخيار قالبًا جديدًا من الموارد الموجودة. القالب الذي تم تصديره هو "لقطة" للحالة الحالية لمجموعة الموارد. يمكنك تصدير مجموعة موارد بأكملها أو موارد محددة ضمن مجموعة الموارد تلك.

  • الحفظ من المحفوظات. هذا الخيار باسترداد نسخة دقيقة من قالب المستخدمة للنشر. تحديد التوزيع من محفوظات التوزيع.

بناءً على الخيار الذي تختاره، تتمتع القوالب المصدرة بصفات مختلفة.

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

تصدير القالب من مجموعة موارد أو مورد، عندما:

  • تحتاج إلى تسجيل التغييرات على الموارد التي تم إجراؤها بعد التوزيع الأصلي.
  • تريد تحديد الموارد التي يتم تصديرها.
  • لم يتم إنشاء الموارد باستخدام قالب.

تصدير القالب من المحفوظات، عندما:

  • تريد قالب تسهل إعادة استخدامه.
  • لست بحاجة إلى تضمين التغييرات التي أجريتها بعد التوزيع الأصلي.

القيود

التصدير غير مضمون للنجاح. التصدير ليس طريقة موثوقة لتحويل الموارد الموجودة مسبقا إلى قوالب قابلة للاستخدام في الإنتاج. من الأفضل إنشاء موارد من البداية باستخدام ملف Bicep المكتوب بخط اليد أو قالب ARM أو terraform.

عند التصدير من مجموعة موارد أو مورد، يتم إنشاء القالب المصدر من المخططات المنشورة لكل نوع مورد. أحياناً، لا يكون للمخطط أحدث إصدار لنوع مورد. تحقق من القالب الذي تم تصديره للتأكد من أنه يتضمن الخصائص التي تحتاج إليها. إذا لزم الأمر، قم بتحرير القالب المصدر لاستخدام إصدار واجهة برمجة التطبيقات الذي تحتاجه.

قد تكون بعض معلمات كلمة المرور مفقودة من القوالب المصدرة. تحتاج إلى التحقق من مرجع القالب وإضافة هذه المعلمات يدوياً قبل أن تتمكن من استخدام القوالب لتوزيع الموارد.

لا تدعم ميزة قالب التصدير تصدير موارد Azure Data Factory. للتعرف على كيفية تصدير موارد Data Factory، راجع نسخ مصنع بيانات أو استنساخه في Azure Data Factory.

لتصدير الموارد التي تم إنشاؤها من خلال نموذج التوزيع الكلاسيكي، يجب ترحيلها إلى نموذج توزيع Resource Manager.

إذا تلقيت تحذيراً عند تصدير قالب يشير إلى عدم تصدير نوع مورد، فلا يزال بإمكانك اكتشاف خصائص هذا المورد. للتعرف على خصائص المورد، راجع مرجع القالب. يمكنك أيضاً إلقاء نظرة على واجهة برمجة تطبيقات REST لـ Azure لنوع المورد.

هناك حد يبلغ 200 مورد في مجموعة الموارد التي تقوم بإنشاء القالب المصدَّر لها. إذا حاولت تصدير مجموعة موارد تحتوي على أكثر من 200 مورد، تظهر رسالة الخطأ Export template is not supported for resource groups more than 200 resources.

تصدير قالب من مجموعة موارد

بعد إعداد مجموعة المواردK يمكنك تصدير قالب Azure Resource Manager لمجموعة الموارد.

لتصدير كافة الموارد في مجموعة موارد، استخدم Export-AzResourceGroup cmdlet ثم اذكر اسم مجموعة الموارد.

Export-AzResourceGroup -ResourceGroupName demoGroup

يؤدي ذلك إلى حفظ القالب كملف محلي.

بدلاً من تصدير جميع الموارد في مجموعة الموارد، يمكنك تحديد الموارد التي تريد تصديرها.

لتصدير مورد واحد، قم بتمرير معرف المورد هذا.

$resource = Get-AzResource `
  -ResourceGroupName <resource-group-name> `
  -ResourceName <resource-name> `
  -ResourceType <resource-type>
Export-AzResourceGroup `
  -ResourceGroupName <resource-group-name> `
  -Resource $resource.ResourceId

لتصدير أكثر من مورد واحد، قم بتمرير معرفات المورد في صفيف.

Export-AzResourceGroup `
  -ResourceGroupName <resource-group-name> `
  -Resource @($resource1.ResourceId, $resource2.ResourceId)

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

"parameters": {
  "serverfarms_demoHostPlan_name": {
    "type": "String"
  },
  "sites_webSite3bwt23ktvdo36_name": {
    "type": "String"
  }
}

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

"resources": [
  {
    "type": "Microsoft.Web/serverfarms",
    "apiVersion": "2022-09-01",
    "name": "demoHostPlan",
    ...
  }
]

إذا كنت تستخدم المعلمة -IncludeParameterDefaultValue عند تصدير القالب، فتتضمن معلمة القالب قيمة افتراضية تم تعيينها إلى القيمة الحالية. يمكنك إما استخدام تلك القيمة الافتراضية أو استبدال القيمة الافتراضية عن طريق تمرير قيمة مختلفة.

"parameters": {
  "serverfarms_demoHostPlan_name": {
    "defaultValue": "demoHostPlan",
    "type": "String"
  },
  "sites_webSite3bwt23ktvdo36_name": {
    "defaultValue": "webSite3bwt23ktvdo36",
    "type": "String"
  }
}

حفظ النموذج من محفوظات النشر

يمكنك حفظ قالب من عملية نشر في محفوظات النشر. القالب الذي تحصل عليه هو بالضبط النموذج الذي تم استخدامه للنشر.

للحصول على قالب من توزيع مجموعة موارد، استخدم Save-AzResourceGroupDeploymentTemplate cmdlet. تقوم بتحديد اسم النشر المراد استرداده. للحصول على تعليمات حول الحصول على اسم توزيع، راجع عرض محفوظات التوزيع باستخدام Azure Resource Manager.

Save-AzResourceGroupDeploymentTemplate -ResourceGroupName demoGroup -DeploymentName demoDeployment

يتم حفظ القالب كملف محلي باسم التوزيع.

لنشر القوالب على مستويات أخرى، استخدم:

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