Azure App Service App Cloning Using PowerShell

ملاحظة

تستخدم هذه المقالة الوحدة النمطية Azure Az PowerShell، وهي الوحدة النمطية PowerShell الموصى بها للتفاعل مع Azure. لبدء استخدام الوحدة النمطية Az PowerShell، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

مع إصدار Microsoft Azure PowerShell الإصدار 1.1.0 ، تمت إضافة خيار جديد يتيح New-AzWebApp لك استنساخ تطبيق App Service موجود إلى تطبيق تم إنشاؤه حديثا في منطقة مختلفة أو في نفس المنطقة. يتيح هذا الخيار للعملاء نشر عدد من التطبيقات عبر مناطق مختلفة بسرعة وسهولة.

يتم دعم استنساخ التطبيقات لخطط خدمة التطبيقات القياسية Premium Premium V2 والمعزولة. تستخدم الميزة الجديدة نفس القيود التي تستخدمها ميزة النسخ الاحتياطي لخدمة التطبيقات، راجع النسخ الاحتياطي لتطبيق في Azure App Service.

استنساخ تطبيق موجود

السيناريو: تطبيق موجود في منطقة جنوب وسط الولايات المتحدة، وتريد استنساخ المحتويات إلى تطبيق جديد في منطقة شمال وسط الولايات المتحدة. يمكن تحقيق ذلك باستخدام إصدار Azure Resource Manager من PowerShell cmdlet لإنشاء تطبيق جديد باستخدام الخيار-SourceWebApp.

معرفة اسم مجموعة الموارد التي تحتوي على التطبيق المصدر، يمكنك استخدام الأمر PowerShell التالي للحصول على معلومات التطبيق المصدر (في هذه الحالة المسماة source-webapp):

$srcapp = Get-AzWebApp -ResourceGroupName SourceAzureResourceGroup -Name source-webapp

لإنشاء خطة خدمة تطبيق جديدة، يمكنك استخدام New-AzAppServicePlan الأمر كما في المثال التالي

New-AzAppServicePlan -Location "North Central US" -ResourceGroupName DestinationAzureResourceGroup -Name DestinationAppServicePlan -Tier Standard

باستخدام الأمر New-AzWebApp ، يمكنك إنشاء التطبيق الجديد في منطقة شمال وسط الولايات المتحدة، وربطه بخطة خدمة تطبيقات موجودة. علاوة على ذلك، يمكنك استخدام نفس مجموعة الموارد مثل التطبيق المصدر، أو تعريف مجموعة موارد جديدة، كما هو موضح في الأمر التالي:

$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "North Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp

لاستنساخ تطبيق موجود بما في ذلك جميع فتحات النشر المقترنة، تحتاج إلى استخدام المعلمة IncludeSourceWebAppSlots . لاحظ أن المعلمة IncludeSourceWebAppSlots مدعومة فقط لاستنساخ تطبيق بأكمله بما في ذلك جميع فتحاته. يوضح الأمر PowerShell التالي استخدام هذه المعلمة مع New-AzWebApp الأمر:

$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "North Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp -IncludeSourceWebAppSlots

لاستنساخ تطبيق موجود داخل المنطقة نفسها، تحتاج إلى إنشاء مجموعة موارد جديدة وخطة خدمة تطبيق جديدة في نفس المنطقة، ثم استخدام الأمر PowerShell التالي لاستنساخ التطبيق:

$destapp = New-AzWebApp -ResourceGroupName NewAzureResourceGroup -Name dest-webapp -Location "South Central US" -AppServicePlan NewAppServicePlan -SourceWebApp $srcapp

استنساخ تطبيق موجود إلى بيئة خدمة تطبيق

السيناريو: تطبيق موجود في منطقة جنوب وسط الولايات المتحدة، وتريد استنساخ المحتويات إلى تطبيق جديد إلى بيئة خدمة تطبيقات (ASE) موجودة.

معرفة اسم مجموعة الموارد التي تحتوي على التطبيق المصدر، يمكنك استخدام الأمر PowerShell التالي للحصول على معلومات التطبيق المصدر (في هذه الحالة المسماة source-webapp):

$srcapp = Get-AzWebApp -ResourceGroupName SourceAzureResourceGroup -Name source-webapp

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

$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "North Central US" -AppServicePlan DestinationAppServicePlan -ASEName DestinationASE -ASEResourceGroupName DestinationASEResourceGroupName -SourceWebApp $srcapp

المعلمة Location مطلوبة لسبب قديم ، ولكن يتم تجاهلها عند إنشاء التطبيق في ASE.

استنساخ فتحة تطبيق موجودة

السيناريو: تريد استنساخ فتحة نشر موجودة لتطبيق إلى تطبيق جديد أو فتحة جديدة. يمكن أن يكون التطبيق الجديد في نفس منطقة فتحة التطبيق الأصلية أو في منطقة مختلفة.

معرفة اسم مجموعة الموارد التي تحتوي على التطبيق المصدر، يمكنك استخدام الأمر PowerShell التالي للحصول على معلومات فتحة التطبيق المصدر (في هذه الحالة المسماة source-appslot) مرتبطة بما يلي source-app:

$srcappslot = Get-AzWebAppSlot -ResourceGroupName SourceAzureResourceGroup -Name source-app -Slot source-appslot

يوضح الأمر التالي إنشاء نسخة من التطبيق المصدر إلى تطبيق جديد:

$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-app -Location "North Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcappslot

تكوين مدير الزيارات أثناء استنساخ تطبيق

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

إنشاء ملف تعريف جديد لمدير الزيارات أثناء استنساخ تطبيق

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

$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "South Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp -TrafficManagerProfileName newTrafficManagerProfile

إضافة تطبيق مستنسخ جديد إلى ملف تعريف حالي لمدير الزيارات

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

$TMProfileID = "/subscriptions/<Your subscription ID goes here>/resourceGroups/<Your resource group name goes here>/providers/Microsoft.TrafficManagerProfiles/ExistingTrafficManagerProfileName"

بعد الحصول على معرف مدير حركة المرور، يوضح الأمر التالي إنشاء نسخة من التطبيق المصدر إلى تطبيق جديد أثناء إضافته إلى ملف تعريف مدير حركة المرور الحالي:

$destapp = New-AzWebApp -ResourceGroupName <Resource group name> -Name dest-webapp -Location "South Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp -TrafficManagerProfileId $TMProfileID

ملاحظة

إذا كنت تتلقى خطأ ينص على أن "التحقق من صحة SSL على اسم مضيف مدير حركة المرور يفشل" ، فإننا نقترح عليك استخدام السمة -IgnoreCustomHostNames في cmdlet powershell أثناء تنفيذ عملية النسخ أو استخدام البوابة الإلكترونية.

القيود الحالية

فيما يلي القيود المعروفة لاستنساخ التطبيقات:

  • إعدادات المقياس التلقائي غير مستنسخة
  • إعدادات جدول النسخ الاحتياطي غير مستنسخة
  • إعدادات VNET غير مستنسخة
  • لا يتم إعداد Insights التطبيق تلقائيا على التطبيق الوجهة
  • إعدادات المصادقة السهلة غير مستنسخة
  • كودو التمديد ليست مستنسخة
  • قواعد TiP غير مستنسخة
  • محتوى قاعدة البيانات غير مستنسخ
  • تتغير عناوين IP الصادرة في حالة الاستنساخ إلى وحدة مقياس مختلفة
  • غير متوفر لتطبيقات لينكس
  • الهويات المدارة غير مستنسخة
  • غير متوفر لتطبيقات الوظائف

المراجع