نسخ تطبيق Azure App Service باستخدام PowerShell
إشعار
نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. للبدء، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.
مع إصدار Microsoft Azure PowerShell الإصدار 1.1.0، تمت إضافة خيار جديد إلى New-AzWebApp
يتيح لك نسخ تطبيق خدمة التطبيقات الحالي إلى تطبيق تم إنشاؤه حديثاً في منطقة مختلفة أو في نفس المنطقة. يتيح هذا الخيار للعملاء توزيع عدد من التطبيقات عبر مناطق مختلفة بسرعة وسهولة.
يتم دعم نسخ التطبيقات لخطط خدمة التطبيقات Standard وPremium وPremium V2 وIsolated. تستخدم الميزة الجديدة نفس القيود التي تستخدمها ميزة App Service Backup، راجع نسخ تطبيق احتياطياً في 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
نسخ تطبيق موجود في App Service Environment
السيناريو: تطبيق موجود في منطقة جنوب وسط الولايات المتحدة، وتريد نسخ المحتويات إلى تطبيق جديد إلى App Service Environment الحالية (ASE).
بمعرفة اسم مجموعة الموارد التي تحتوي على التطبيق المصدر، يمكنك استخدام أمر PowerShell التالي للحصول على معلومات التطبيق المصدر (في هذه الحالة باسم source-webapp
):
$srcapp = Get-AzWebApp -ResourceGroupName SourceAzureResourceGroup -Name source-webapp
بمعرفة اسم ASE، واسم مجموعة الموارد التي تنتمي إليها ASE، يمكنك إنشاء التطبيق الجديد في ASE الحالي، كما هو موضح في الأمر التالي:
$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "North Central US" -AppServicePlan DestinationAppServicePlan -ASEName DestinationASE -ASEResourceGroupName DestinationASEResourceGroupName -SourceWebApp $srcapp
المعلمة Location
مطلوبة لسبب قديم، ولكن يتم تجاهلها عند إنشاء التطبيق في ASE.
نسخ تطبيق Slot موجود
السيناريو: تريد نسخ فتحة توزيع موجودة لتطبيق ما إلى تطبيق جديد أو فتحة جديدة. يمكن أن يكون التطبيق الجديد في نفس منطقة فتحة التطبيق الأصلية أو في منطقة مختلفة.
بمعرفة اسم مجموعة الموارد التي تحتوي على التطبيق المصدر، يمكنك استخدام أمر 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
تكوين Traffic Manager أثناء نسخ التطبيق
يعد إنشاء تطبيقات متعددة المناطق وتكوين Azure Traffic Manager لتوجيه نسبة استخدام الشبكة إلى جميع هذه التطبيقات، سيناريو مهماً لضمان توفر تطبيقات العملاء بشكل كبير. عند نسخ تطبيق موجود، لديك خيار توصيل كلا التطبيقين إما بملف تعريف مدير حركة مرور جديد أو ملف شخصي موجود. يتم دعم إصدار Azure Resource Manager فقط من Traffic Manager.
إنشاء ملف تعريف Traffic Manager الجديد أثناء نسخ أحد التطبيقات
السيناريو: تريد نسخ تطبيق إلى منطقة أخرى، أثناء تكوين ملف تعريف إدارة مرور Azure Resource Manager الذي يتضمن كلا التطبيقين. يوضح الأمر التالي إنشاء نسخة من التطبيق المصدر إلى تطبيق جديد أثناء تكوين ملف تعريف Traffic Manager الجديد:
$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "South Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp -TrafficManagerProfileName newTrafficManagerProfile
إضافة تطبيق مستنسخ جديد إلى ملف تعريف Traffic Manager الحالي
السيناريو: لديك بالفعل ملف تعريف مدير حركة مرور Azure Resource Manager وتريد إضافة كلا التطبيقين كنقاط نهاية. للقيام بذلك، تحتاج أولاً إلى تجميع معرف ملف تعريف مدير المرور الحالي. أنت بحاجة إلى معرف الاشتراك واسم مجموعة الموارد واسم ملف تعريف مدير المرور الحالي.
$TMProfileID = "/subscriptions/<Your subscription ID goes here>/resourceGroups/<Your resource group name goes here>/providers/Microsoft.TrafficManagerProfiles/ExistingTrafficManagerProfileName"
بعد الحصول على معرف مدير نسبة استخدام الشبكة، يوضح الأمر التالي إنشاء نسخة من التطبيق المصدر إلى تطبيق جديد أثناء إضافتها إلى ملف تعريف Traffic Manager الحالي:
$destapp = New-AzWebApp -ResourceGroupName <Resource group name> -Name dest-webapp -Location "South Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp -TrafficManagerProfileId $TMProfileID
إشعار
إذا كنت تتلقى خطأ ينص على "فشل التحقق من SSL على اسم مضيف مدير نسبة استخدام الشبكة"، فنحن نقترح عليك استخدام السمة -IgnoreCustomHostNames في الأمر powershell أثناء إجراء عملية النسخ أو استخدام المدخل.
القيود الحالية
فيما يلي القيود المعروفة لنسخ التطبيق:
- لا يتم نسخ إعدادات المقياس التلقائي
- لا يتم نسخ إعدادات جدول النسخ الاحتياطي
- لا يتم نسخ إعدادات VNET
- لا يتم إعداد App Insights تلقائياً في التطبيق الوجهة
- لا يتم نسخ إعدادات المصادقة السهلة
- لم يتم نسخ ملحق Kudu
- لا يتم نسخ قواعد TiP
- لم يتم نسخ محتوى قاعدة البيانات
- تتغير عناوين IP الصادرة في حال النسخ إلى وحدة قياس مختلفة
- غير متاح لتطبيقات Linux
- لا يتم نسخ الهويات المدارة
- غير متاح لتطبيقات الوظائف