إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
عند توزيع الموارد الخاصة بك، يمكنك تحديد أن التوزيع هو إما تحديث تزايدي أو تحديث كامل. الفرق بين هذين الوضعين هو كيفية معالجة Azure Resource Manager الموجودة في مجموعة الموارد غير الموجودة في القالب.
مهم
استخدم مكدسات التوزيع لتنفيذ عمليات حذف الموارد عند استخدام قوالب ARM أو ملفات Bicep، حيث سيتم إهمال الوضع الكامل تدريجيا.
لكلا الوضعين، يحاول Resource Manager إنشاء كافة الموارد المحددة في القالب. إذا كان المورد موجودا بالفعل في مجموعة الموارد ولم تتغير إعداداته، فلن يتم إجراء أي عملية لهذا المورد. إذا قمت بتغيير قيم الخاصية لمورد، يتم تحديث المورد بتلك القيم الجديدة. إذا حاولت تحديث موقع أو نوع مورد موجود، يفشل النشر مع حدوث خطأ. بدلا من ذلك، انشر موردا جديدا مع الموقع أو النوع الذي تحتاجه.
الوضع الافتراضي تزايدي.
الوضع التزايدي
في الوضع التزايدي، يترك Resource Manager الموارد التي لم تتغير الموجودة في مجموعة الموارد ولكنها غير محددة في القالب. تتم إضافة الموارد الموجودة في القالب إلى مجموعة الموارد.
مهم
الوضع التزايدي هو وضع النشر الموصى به. إذا كانت هناك حاجة لحذف الموارد كجزء من ملف Bicep أو قالب ARM JSON، فاستخدم مكدسات التوزيع.
عند إعادة توزيع مورد موجود في الوضع التزايدي، تتم إعادة تطبيق جميع الخصائص. لا تتم إضافة الخصائص بشكل متزايد. سوء الفهم الشائع هو التفكير في أن الخصائص التي لم يتم تحديدها في القالب لم تتغير. إذا لم تحدد خصائص معينة، فإن Resource Manager يفسر التوزيع على أنه الكتابة فوق تلك القيم. تتم إعادة تعيين الخصائص غير المضمنة في القالب إلى القيم الافتراضية. حدد كافة القيم غير الافتراضية للمورد، وليس فقط القيم التي تقوم بتحديثها. يحتوي تعريف المورد في القالب دائما على الحالة النهائية للمورد. لا يمكن أن يمثل تحديثا جزئيا لمورد موجود.
تحذير
في حالات نادرة، يمكنك تحديد خصائص إما على مورد أو على أحد موارده التابعة. مثالان شائعان هما الشبكات الفرعية على الشبكات الظاهريةوقيم تكوين الموقع لتطبيقات الويب. في هذه الحالات، يجب معالجة التحديثات المتزايدة بعناية.
بالنسبة للشبكات الفرعية، حدد القيم من خلال الخاصية subnets على مورد Microsoft.Network/virtualNetworks . لا تحدد القيم من خلال المورد التابع Microsoft.Network/virtualNetworks/subnets. طالما تم تعريف الشبكات الفرعية على الشبكة الظاهرية، يمكنك إعادة نشر الشبكة الظاهرية وعدم فقدان الشبكات الفرعية.
بالنسبة لقيم تكوين الموقع، يتم تنفيذ القيم في نوع Microsoft.Web/sites/configالمورد التابع . إذا قمت بإعادة نشر تطبيق الويب وحددت كائنا فارغا لقيم تكوين الموقع، فلن يتم تحديث المورد التابع. ومع ذلك، إذا قمت بتوفير قيم تكوين موقع جديدة، يتم تحديث نوع المورد التابع.
الوضع الكامل
تحذير
الوضع الكامل غير مستحسن. إذا كنت ترغب في إجراء عمليات حذف باستخدام عمليات نشر قالب Bicep أو ARM، فاستخدم مكدسات التوزيع.
في الوضع الكامل، يحذف Resource Manager الموارد الموجودة في مجموعة الموارد ولكن لم يتم تحديدها في القالب.
ملاحظة
استخدم دائمًا عملية what-if قبل نشر قالب في وضع كامل. توضح لك عملية what-if الموارد التي سيتم إنشاؤها، أو حذفها، أو تعديلها. استخدم what-if لتجنب حذف الموارد عن غير قصد.
إذا كان القالب يتضمن موردا لم يتم نشره لأن الشرط يقيم إلى خطأ، فإن النتيجة تعتمد على إصدار REST API الذي تستخدمه لنشر القالب. إذا كنت تستخدم إصدارا أقدم من 2019-05-10، فلن يتم حذف المورد. مع 2019-05-10 أو أحدث، يتم حذف المورد. تحذف أحدث إصدارات Azure PowerShell وAzure CLI المورد.
كن حذرا باستخدام الوضع الكامل مع حلقات النسخ. يتم حذف أي موارد لم يتم تحديدها في القالب بعد حل حلقة النسخ.
إذا قمت بنشر إلى أكثر من مجموعة موارد في قالب، تكون الموارد الموجودة في مجموعة الموارد المحددة في عملية النشر مؤهلة للحذف. لا يتم حذف الموارد الموجودة في مجموعات الموارد الثانوية.
هناك بعض الاختلافات في كيفية تعامل أنواع الموارد مع عمليات حذف الوضع الكامل. يتم حذف الموارد الأصلية تلقائيا عندما لا تكون في قالب يتم نشره في الوضع الكامل. لا يتم حذف بعض الموارد التابعة تلقائيا عندما لا تكون في القالب. ومع ذلك، يتم حذف هذه الموارد التابعة إذا تم حذف المورد الأصل.
على سبيل المثال، إذا كانت مجموعة الموارد تحتوي على منطقة DNS (Microsoft.Network/dnsZones نوع المورد) وسجل CNAME (Microsoft.Network/dnsZones/CNAME نوع المورد)، فإن منطقة DNS هي المورد الأصل لسجل CNAME. إذا قمت بالنشر باستخدام الوضع الكامل ولم تقم بتضمين منطقة DNS في القالب الخاص بك، يتم حذف كل من منطقة DNS وسجل CNAME. إذا قمت بتضمين منطقة DNS في القالب الخاص بك ولكنك لم تقم بتضمين سجل CNAME، فلن يتم حذف CNAME.
للحصول على قائمة بكيفية معالجة أنواع الموارد للحذف، راجع حذف موارد Azure لنشر الوضع الكامل.
إذا تم تأمين مجموعة الموارد، فلن يحذف الوضع الكامل الموارد.
ملاحظة
تدعم القوالب على مستوى الجذر فقط وضع النشر الكامل. بالنسبة للقوالب المرتبطة أو المتداخلة، يجب استخدام الوضع التزايدي.
لا تدعم عمليات النشر على مستوى الاشتراك الوضع الكامل.
حاليا، لا يدعم المدخل الوضع الكامل.
مثال على النتيجة
لتوضيح الفرق بين الوضعين التزايدي والكامل، ضع في اعتبارك السيناريو التالي.
تحتوي مجموعة الموارد على:
- المورد أ
- المورد ب
- المورد ج
يحتوي القالب على:
- المورد أ
- المورد ب
- المورد D
عند النشر في الوضع التزايدي ، تحتوي مجموعة الموارد على:
- المورد أ
- المورد ب
- المورد ج
- المورد D
عند النشر في الوضع الكامل ، يتم حذف المورد C. تحتوي مجموعة الموارد على:
- المورد أ
- المورد ب
- المورد D
تعيين وضع النشر
لتعيين وضع النشر عند النشر باستخدام PowerShell، استخدم المعلمة Mode .
New-AzResourceGroupDeployment `
-Mode Complete `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile c:\MyTemplates\storage.json
لتعيين وضع التوزيع عند النشر باستخدام Azure CLI، استخدم المعلمة mode .
az deployment group create \
--mode Complete \
--name ExampleDeployment \
--resource-group ExampleResourceGroup \
--template-file storage.json
يوضح المثال التالي قالب مرتبط تم تعيينه إلى وضع النشر التزايدي:
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2025-04-01",
"name": "linkedTemplate",
"properties": {
"mode": "Incremental",
<nested-template-or-external-template>
}
}
]
الخطوات التَالِية
- لمعرفة المزيد حول إنشاء قوالب Azure Resource Manager، راجع فهم بنية وبنية قوالب ARM.
- للتعرف على توزيع الموارد، راجع نشر الموارد باستخدام قوالب ARM وAzure PowerShell.
- لعرض عمليات موفر الموارد، راجع Azure REST API.