نظرة عامة على تطبيقات VM

تطبيقات الجهاز الظاهري هي نوع من الموارد في Azure Compute Gallery (المعروف سابقاً باسم Shared Image Gallery) الذي يبسط الإدارة، والمشاركة، والتوزيع العام لتطبيقات الأجهزة الظاهرية الخاصة بك.

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

توفر حزم التطبيقات فوائد على أساليب التوزيع والتعبئة الأخرى:

  • تطبيقات الجهاز الظاهري لديها دعم لنهج Azure

  • تجميع الحزم وتعيين إصداراتها

  • يمكن نسخ تطبيقات الأجهزة الظاهرية عالمياً بحيث تكون أقرب إلى بنيتك الأساسية، لذلك لن تحتاج إلى استخدام AzCopy أو آليات نسخ التخزين الأخرى لنسخ وحدات البت عبر مناطق Azure.

  • المشاركة مع مستخدمين آخرين من خلال تحكم Azure في الوصول المستند إلى دور (RBAC)

  • دعم الأجهزة الظاهرية، ومجموعات التوسعة المرنة والموحدة على حد سواء

  • إذا كانت لديك قواعد مجموعة أمان الشبكة (NSG) المطبقة على الجهاز الظاهري أو مجموعة التوسعة، فقد يكون تنزيل الحزم من مستودع الإنترنت غير ممكن. ومع حسابات التخزين، سيتطلب تنزيل الحزم على الأجهزة الظاهرية المقفلة إعداد روابط خاصة.

  • دعم Block Blobs: تسمح هذه الميزة بمعالجة الملفات الكبيرة بكفاءة عن طريق تقسيمها إلى كتل أصغر يمكن إدارتها. مثالي لتحميل كميات كبيرة من البيانات والتدفق وتحميل الخلفية.

ما هي حزم تطبيقات الجهاز الظاهري؟

تستخدم حزم تطبيقات الجهاز الظاهري أنواع موارد متعددة:

مورد ‏‏الوصف
Azure compute gallery المعرض هو مستودع لإدارة حزم التطبيقات ومشاركتها. يمكن للمستخدمين مشاركة مورد المعرض وتتم مشاركة جميع الموارد التابعة تلقائيا. يجب أن يكون اسم المعرض فريداً لكل اشتراك. على سبيل المثال، قد يكون لديك معرض واحد لتخزين جميع صور نظام التشغيل ومعرض آخر لتخزين جميع تطبيقات الجهاز الظاهري الخاصة بك.
تطبيق الجهاز الظاهري تعريف تطبيق الجهاز الظاهري. إنه مورد منطقي يخزن بيانات التعريف الشائعة لجميع الإصدارات الموجودة ضمنه. على سبيل المثال، قد يكون لديك تعريف تطبيق لـ Apache Tomcat ولديك إصدارات متعددة داخله.
إصدار تطبيق الجهاز الظاهري المورد القابل للتوزيع. يمكنك نسخ إصدارات تطبيق الجهاز الظاهري عالمياً لاستهداف المناطق الأقرب إلى البنية الأساسية لجهازك الظاهري. يجب نسخ إصدار تطبيق الجهاز الظاهري إلى منطقة قبل توزيعه على جهاز ظاهري في تلك المنطقة.

القيود

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

  • التخزين مع الوصول العام أو SAS URI مع امتياز القراءة: يحتاج حساب التخزين إلى الوصول إلى المستوى العام أو استخدام SAS URI مع امتياز القراءة، حيث تفشل مستويات التقييد الأخرى في عمليات النشر.

  • إعادة محاولة عمليات التثبيت الفاشلة: حالياً، تتمثل الطريقة الوحيدة لإعادة محاولة التثبيت الفاشل في إزالة التطبيق من ملف التعريف، ثم إضافته مرة أخرى.

  • 25 تطبيقا فقط لكل جهاز ظاهري: لا يمكن نشر أكثر من 25 تطبيقا على جهاز ظاهري في أي وقت.

  • حجم التطبيق 2 غيغابايت: الحد الأقصى لحجم الملف لإصدار التطبيق هو 2 غيغابايت.

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

  • يتطلب عامل VM: يجب أن يكون عامل الجهاز الظاهري موجوداً على الجهاز الظاهري وأن يكون قادراً على تلقي حالات الهدف.

  • إصدارات متعددة من نفس التطبيق على نفس الجهاز الظاهري: لا يمكنك الحصول على إصدارات متعددة من نفس التطبيق على جهاز ظاهري.

  • نقل العمليات غير مدعومة حاليا: نقل الأجهزة الظاهرية مع تطبيقات الأجهزة الظاهرية إلى مجموعات الموارد الأخرى غير مدعوم في الوقت الحالي.

إشعار

بالنسبة إلى Azure Compute Gallery وتطبيقات الجهاز الظاهري، يمكن حذف Storage SAS بعد النسخ المتماثل.

التكلفة

لا توجد رسوم إضافية لاستخدام حزم تطبيقات الجهاز الظاهري، ولكن يتم تحصيل رسوم منك مقابل الموارد التالية:

  • تكاليف التخزين لتخزين كل حزمة وأي نسخ متماثلة.
  • رسوم خروج الشبكة للنسخ المتماثل لإصدار الصورة الأول من المنطقة المصدر إلى المناطق المتكررة. يتم التعامل مع النسخ المتماثلة اللاحقة داخل المنطقة، لذلك لن تُفرض رسوم إضافية.

لمزيد من المعلومات حول خروج الشبكة، راجع تسعير النطاق الترددي.

تطبيقات VM

يحدد مورد تطبيق الجهاز الظاهري ما يلي حول تطبيق الجهاز الظاهري الخاص بك:

  • Azure Compute Gallery حيث يتم تخزين تطبيق الجهاز الظاهري
  • اسم التطبيق
  • نوع نظام التشغيل المدعوم مثل Linux أو Windows
  • وصف لتطبيق الجهاز الظاهري

إصدارات تطبيق الجهاز الظاهري

إصدارات تطبيق الجهاز الظاهري هي المورد القابل للتوزيع. يتم تعريف الإصدارات بالخصائص التالية:

  • رقم الإصدار
  • الارتباط بملف حزمة التطبيق في حساب تخزين
  • تثبيت سلسلة لتثبيت التطبيق
  • إزالة السلسلة لإظهار كيفية إزالة التطبيق بشكل صحيح
  • اسم ملف الحزمة المُستخدم عند تنزيله إلى «الجهاز الظاهري»
  • اسم ملف التكوين لاستخدامه لتكوين التطبيق على الجهاز الظاهري
  • ارتباط إلى ملف التكوين لتطبيق الجهاز الظاهري، والذي يمكنك تضمين ملفات الترخيص
  • سلسلة التحديث لكيفية تحديث تطبيق الجهاز الظاهري إلى إصدار أحدث
  • تاريخ انتهاء العمر. تواريخ نهاية العمر الافتراضي إعلامية؛ لا تزال قادرا على نشر إصدارات تطبيق الجهاز الظاهري بعد تاريخ انتهاء العمر الافتراضي.
  • استبعاد من الأحدث. يمكنك منع استخدام إصدار كأحدث إصدار من التطبيق.
  • المناطق المستهدفة للنسخ المتماثل
  • عدد النسخ المتماثلة لكل منطقة

تنزيل الدليل

موقع تنزيل حزمة التطبيق وملفات التكوين هي:

  • Linux: /var/lib/waagent/Microsoft.CPlat.Core.VMApplicationManagerLinux/<appname>/<app version>
  • Windows: C:\Packages\Plugins\Microsoft.CPlat.Core.VMApplicationManagerWindows\1.0.9\Downloads\<appname>\<app version>

يجب كتابة أوامر التثبيت/التحديث/الإزالة على افتراض وجود حزمة التطبيق وملف التكوين في الدليل الحالي.

تسمية الملف

عند تنزيل ملف التطبيق إلى الجهاز الظاهري، تتم إعادة تسميته باسم "MyVmApp" (بدون ملحق). وذلك لأن الجهاز الظاهري ليس على علم بالاسم الأصلي لحزمتك أو ملحقها. ويستخدم الاسم الوحيد الذي يحتوي عليه، وهو اسم التطبيق نفسه - "MyVmApp".

فيما يلي بعض البدائل للتنقل في هذه المشكلة:

يمكنك تعديل البرنامج النصي الخاص بك لتضمين أمر لإعادة تسمية الملف قبل التنفيذ:

move .\\MyVmApp .\\MyApp.exe & MyApp.exe /S

يمكنك أيضا استخدام الخاصية packageFileName (والمطابقة configFileName) لإرشادنا إلى ما يجب إعادة تسمية الملف الخاص بك. على سبيل المثال، سيؤدي تعيينه إلى "MyApp.exe" إلى جعل البرنامج النصي للتكوين الخاص بك بحاجة فقط إلى:

MyAppe.exe /S

تلميح

إذا كان blob الخاص بك يسمى في الأصل "myApp.exe" بدلا من "myapp"، فإن البرنامج النصي أعلاه قد عمل دون تعيين الخاصية packageFileName .

مترجم الأوامر

مترجمو الأوامر الافتراضيون هم:

  • Linux: /bin/bash
  • Windows: cmd.exe

من الممكن استخدام مترجم مختلف مثل Chocolatey أو PowerShell، ما دام أنه مثبت على الجهاز، عن طريق استدعاء الملف التنفيذي وتمرير الأمر إليه. على سبيل المثال، لتشغيل الأمر الخاص بك في PowerShell على Windows بدلاً من cmd، يمكنك تمرير powershell.exe -Command '<powershell commmand>'

كيفية التعامل مع التحديثات

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

يجب كتابة أوامر التحديث مع توقع إمكانية تحديثها من أي إصدار من إصدارات تطبيق الجهاز الظاهري الأقدم.

نصائح لإنشاء تطبيقات جهاز ظاهري على Linux

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

ملفات .tar و.gz

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

مثال على أمر تثبيت لتثبيت golang على جهاز Linux:

sudo tar -C /usr/local -xzf go_linux

مثال على الأمر إزالة:

sudo rm -rf /usr/local/go

إنشاء حزم التطبيقات باستخدام .debو .rpmو و حزم أخرى خاصة بالنظام الأساسي للأجهزة الظاهرية ذات الوصول المقيد إلى الإنترنت

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

قد يكون اكتشاف التبعيات أمراً صعباً بعض الشيء. هناك أدوات تابعة لجهات خارجية بإمكانها إظهار شجرة التبعية بأكملها.

في Ubuntu، يمكنك تشغيل sudo apt show <package_name> | grep Depends لإظهار جميع الحزم المثبتة عند تنفيذ sudo apt-get install <packge_name> الأمر. ثم يمكنك استخدام هذا الإخراج لتنزيل جميع .deb الملفات لإنشاء أرشيف يمكن استخدامه كحزمة تطبيق.

  1. على سبيل المثال، لإنشاء حزمة تطبيق VM لتثبيت PowerShell ل Ubuntu، قم أولا بتشغيل الأوامر التالية لتمكين المستودع حيث يمكن تنزيل PowerShell من وأيضا لتحديد تبعيات الحزمة على جهاز Ubuntu ظاهري جديد.
# Download the Microsoft repository GPG keys
wget -q "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb"
# Register the Microsoft repository GPG keys
sudo dpkg -i packages-microsoft-prod.deb
sudo rm -rf packages-microsoft-prod.deb
sudo apt update
sudo apt show powershell | grep Depends
  1. تحقق من إخراج السطر يعتمد على الذي يسرد الحزم التالية:
Depends: libc6, libgcc1, libgssapi-krb5-2, libstdc++6, zlib1g, libicu72|libicu71|libicu70|libicu69|libicu68|libicu67|libicu66|libicu65|libicu63|libicu60|libicu57|libicu55|libicu52, libssl3|libssl1.1|libssl1.0.2|libssl1.
  1. قم بتنزيل كل ملف من هذه الملفات باستخدام sudo apt-get download <package_name> وإنشاء أرشيف tar مضغوط مع جميع الملفات.
  • Ubuntu 18.04:
mkdir /tmp/powershell
cd /tmp/powershell
sudo apt-get download libc6
sudo apt-get download libgcc1
sudo apt-get download libgssapi-krb5-2
sudo apt-get download libstdc++6
sudo apt-get download zlib1g
sudo apt-get download libssl1.1
sudo apt-get download libicu60
sudo apt-get download powershell
sudo tar -cvzf powershell.tar.gz *.deb
  • Ubuntu 20.04:
mkdir /tmp/powershell
cd /tmp/powershell
sudo apt-get download libc6
sudo apt-get download libgcc1
sudo apt-get download libgssapi-krb5-2
sudo apt-get download libstdc++6
sudo apt-get download zlib1g
sudo apt-get download libssl1.1
sudo apt-get download libicu66
sudo apt-get download powershell
sudo tar -cvzf powershell.tar.gz *.deb
  • Ubuntu 22.04:
mkdir /tmp/powershell
cd /tmp/powershell
sudo apt-get download libc6
sudo apt-get download libgcc1
sudo apt-get download libgssapi-krb5-2
sudo apt-get download libstdc++6
sudo apt-get download zlib1g
sudo apt-get download libssl3
sudo apt-get download libicu70
sudo apt-get download powershell
sudo tar -cvzf powershell.tar.gz *.deb
  1. أرشيف tar هذا هو ملف حزمة التطبيق.
  • أمر التثبيت في هذه الحالة هو:
sudo tar -xvzf powershell.tar.gz && sudo dpkg -i *.deb
  • وأمر الإزالة هو:
sudo apt remove powershell

استخدم sudo apt autoremove بدلاً من المحاولة الصريحة لإزالة جميع التبعيات. ربما تكون قد قمت بتثبيت تطبيقات أخرى ذات تبعيات متداخلة، وفي هذه الحالة، سيفشل أمر الإزالة الصريح.

في حالة عدم رغبتك في حل التبعيات بنفسك، والقدرة apt على الاتصال بالمستودعات، يمكنك تثبيت تطبيق بملف واحد .deb فقط والسماح apt بمعالجة التبعيات.

مثال على أمر التثبيت:

dpkg -i <package_name> || apt --fix-broken install -y

نصائح لإنشاء تطبيقات جهاز ظاهري على Windows

تتوفر معظم تطبيقات الجهات الأخرى في نظام تشغيل Windows مثل مثبتات .exe أو .msi. بعضها متاح أيضاً كملفات استخراج وتشغيل الملفات المضغوطة. دعونا نلقي نظرة على أفضل الممارسات لكل منها.

المُثبت .exe

عادةً ما تقوم الملفات التنفيذية للمُثبت بتشغيل واجهة مستخدم (UI) وتتطلب من شخص ما التحديد فوق «واجهة المستخدم». إذا كان المُثبت يدعم معلمة الوضع الصامت، فيجب تضمينها في سلسلة التثبيت.

يتوقع Cmd.exe أيضا أن تحتوي الملفات القابلة للتنفيذ على الملحق .exe، لذلك تحتاج إلى إعادة تسمية الملف للحصول على .exe الملحق.

إذا كنت أرغب في إنشاء حزمة تطبيق VM ل myApp.exe، والتي يتم شحنها كقابل للتنفيذ، يسمى تطبيق الجهاز الظاهري الخاص بي "myApp"، لذلك أكتب الأمر بافتراض أن حزمة التطبيق موجودة في الدليل الحالي:

"move .\\myApp .\\myApp.exe & myApp.exe /S -config myApp_config"

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

في السجل، يتم تخزين سلسلة إلغاء التثبيت في Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\<installed application name>\UninstallString لذا سأستخدم المحتويات كأمر الإزالة الخاص بي:

'\"C:\\Program Files\\myApp\\uninstall\\helper.exe\" /S'

المُثبت .msi

لتنفيذ سطر الأوامر للمُثبتات .msi، يجب أن تستخدم أوامر تثبيت التطبيق أو إزالته msiexec. عادة ما يتم تشغيل msiexec كعملية منفصلة خاصة به ولا ينتظره cmd حتى يكتمل، ما قد يؤدي إلى حدوث مشكلات عند تثبيت أكثر من تطبيق جهاز ظاهري. يمكن استخدام الأمر start مع msiexec للتأكد من اكتمال التثبيت قبل عودة الأمر. على سبيل المثال:

start /wait %windir%\\system32\\msiexec.exe /i myapp /quiet /forcerestart /log myapp_install.log

مثال على الأمر إزالة:

start /wait %windir%\\system32\\msiexec.exe /x $appname /quiet /forcerestart /log ${appname}_uninstall.log

الملفات المضغوطة

بالنسبة لـ.zip أو الملفات المضغوطة الأخرى، عليك إعادة تسمية محتويات حزمة التطبيق وفك ضغطها إلى الوجهة المطلوبة.

مثال على أمر التثبيت:

rename myapp myapp.zip && mkdir C:\myapp && powershell.exe -Command "Expand-Archive -path myapp.zip -destinationpath C:\myapp"

مثال على الأمر إزالة:

rmdir /S /Q C:\\myapp

التعامل مع الفشل على أنه فشل في النشر

يعود امتداد تطبيق VM دائمًا بنجاح بغض النظر عما إذا كان أي تطبيق VM قد فشل أثناء التثبيت أو التحديث أو الإزالة. يقوم ملحق تطبيق الجهاز الظاهري فقط بالإبلاغ عن حالة الملحق كفشل عند وجود مشكلة في الملحق أو البنية الأساسية. يتم تشغيل هذا السلوك بواسطة علامة "التعامل مع الفشل كفشل نشر"، والتي يتم تعيينها إلى $false افتراضيا ويمكن تغييرها إلى $true. يمكن تكوين علامة الفشل في PowerShell أو CLI.

استكشاف أخطاء تطبيقات الجهاز الظاهري وإصلاحها

لمعرفة ما إذا تمت إضافة تطبيق «جهاز ظاهري» معين بنجاح إلى مثيل «الجهاز الظاهري»، برجاء التحقق من رسالة ملحق VM Application.

لمعرفة المزيد حول الحصول على حالة ملحقات الأجهزة الظاهرية، راجع ملحقات الجهاز الظاهري وميزاته لنظام التشغيل Linux وملحقات الجهاز الظاهري وميزاته لنظام التشغيل Windows.

للحصول على حالة ملحقات VM، استخدم Get-AzVM:

Get-AzVM -name <VM name> -ResourceGroupName <resource group name> -Status | convertto-json -Depth 10

للحصول على حالة ملحقات مجموعة التوسعة، استخدم Get-AzVMSS:

$result = Get-AzVmssVM -ResourceGroupName $rgName -VMScaleSetName $vmssName -InstanceView
$resultSummary  = New-Object System.Collections.ArrayList
$result | ForEach-Object {
    $res = @{ instanceId = $_.InstanceId; vmappStatus = $_.InstanceView.Extensions | Where-Object {$_.Name -eq "VMAppExtension"}}
    $resultSummary.Add($res) | Out-Null
}
$resultSummary | convertto-json -depth 5

رسائل خطأ

رسالة ‏‏الوصف
تم إلغاء إصدار تطبيق VM الحالي {الاسم} في {التاريخ}. حاولت توزيع إصدار تطبيق VM الذي تم إلغاؤه بالفعل. حاول استخدام latest بدلاً من تحديد إصدار معين.
يدعم إصدار تطبيق VM الحالي {الاسم} نظام التشغيل {نظام التشغيل}، بينما نظام تشغيل OSDisk الحالي هو {نظام التشغيل}. حاولت توزيع تطبيق Linux إلى مثيل Windows أو العكس.
تم تجاوز الحد الأقصى لعدد تطبيقات VM (الحد الأقصى = 5، الحالي = {العدد}). استخدم عدداً أقل من التطبيقات وأعد محاولة الطلب. نحن ندعم حالياً خمسة تطبيقات VM فقط لكل جهاز ظاهري أو مجموعة توسعة.
تم تحديد أكثر من «تطبيق للجهاز الظاهري» بالمُعرّف packageReferenceId نفسه. تم تحديد نفس التطبيق أكثر من مرة.
غير مصرح للاشتراك الوصول إلى هذه الصورة. لا يمكن للاشتراك الوصول إلى إصدار التطبيق هذا.
حساب التخزين في الوسيطات غير موجود. لا توجد تطبيقات لهذا الاشتراك.
إن صورة النظام الأساسي {الصورة} غير متوفرة. تحقق من صحة جميع الحقول في ملف تعريف التخزين. لمزيد من التفاصيل حول معلومات ملف تعريف التخزين، راجع https://aka.ms/storageprofile. التطبيق غير موجود.
صورة المعرض {image} غير متوفرة في منطقة {region}. اتصل بمالك الصورة للنسخ المتماثل إلى هذه المنطقة، أو تغيير المنطقة المطلوبة. إصدار تطبيق المعرض موجود، ولكن لم يتم نسخه نسخا متماثلا إلى هذه المنطقة.
SAS غير صالح لمصدر uri {uri}. تم تلقي خطأ Forbidden من التخزين عند محاولة استرداد معلومات حول عنوان url (إما mediaLink أو defaultConfigurationLink).
الكائن الثنائي كبير الحجم المشار إليه بواسطة uri المصدر {uri} غير موجودة. الكائن الثنائي كبير الحجم المتوفر لخصائص mediaLink أو defaultConfigurationLink غير موجودة.
لا يمكن الوصول إلى url إصدار تطبيق المعرض {url} بسبب الخطأ التالي: لم يتم العثور على الاسم البعيد. تأكد من وجود الكائن الثنائي كبير الحجم وأنه إما متاح للجمهور أو أن SAS url مع امتيازات القراءة. الحالة الأكثر احتمالا هي أنه لم يتم توفير SAS uri مع امتيازات القراءة.
لا يمكن الوصول إلى url إصدار تطبيق المعرض {url} بسبب الخطأ التالي: {error description}. تأكد من وجود الكائن الثنائي كبير الحجم وأنه إما متاح للجمهور أو أن SAS url مع امتيازات القراءة. كانت هناك مشكلة في الكائن الثنائي كبير الحجم للتخزين المُقدم. يوفر وصف الخطأ المزيد من المعلومات.
العملية {operationName} غير مسموح بها على {application} نظرا لأنه تم وضع علامة عليها للحذف. يمكنك فقط إعادة محاولة عملية الحذف (أو الانتظار حتى تكتمل عملية مستمرة). محاولة تحديث تطبيق يتم حذفه حاليا.
القيمة {value} للمعلمة 'galleryApplicationVersion.properties.publishingProfile.replicaCount' خارج النطاق. يجب أن تكون القيمة بين واحد وثلاثة، شاملة. يسمح فقط بين نسخة متماثلة واحدة وثلاث نسخ متماثلة لإصدارات تطبيق الجهاز الظاهري.
تغيير الخاصية 'galleryApplicationVersion.properties.publishingProfile.manageActions.install' غير مسموح به. (أو تحديث، حذف) لا يمكن تغيير أي من إجراءات الإدارة على VmApplication موجود. يجب إنشاء إصدار VmApplication جديد.
تغيير الخاصية ' galleryApplicationVersion.properties.publishingProfile.settings.packageFileName ' غير مسموح به. (أو configFileName) لا يمكن تغيير أي من الإعدادات، مثل اسم ملف الحزمة أو اسم ملف التكوين. يجب إنشاء إصدار VmApplication جديد.
الكائن الثنائي كبير جدا المشار إليه بواسطة uri المصدر {uri} كبير جدا: الحجم = {size}. الحد الأقصى لحجم الكائن الثنائي كبير الحجم المسموح به هو "1 جيجابايت". الحد الأقصى لحجم الكائن الثنائي كبير الحجم المشار إليه بواسطة mediaLink أو defaultConfigurationLink حالياً 1 جيجابايت.
الكائن الثنائي كبير الحجم المشار إليه بواسطة uri المصدر {uri} فارغ. تمت الإشارة إلى كائن ثنائي كبير الحجم فارغ.
نوع الكائن الثنائي كبير الحجم {type} غير معتمد لعملية {operation}. يتم دعم الكائنات الثنائية كبيرة الحجم للصفحة والكتلة فقط. يدعم VmApplications الكائنات الثنائية كبيرة الحجم للصفحة والكتلة فقط.
SAS غير صالح لمصدر uri {uri}. لا يعد SAS uri المتوفر ل mediaLink أو defaultConfigurationLink عنوان SAS uri صالحا.
لا يمكن تحديد {region} في المناطق المستهدفة لأن الاشتراك يفتقد الميزة المطلوبة {featureName}. إما تسجيل اشتراكك مع الميزة المطلوبة أو إزالة المنطقة من قائمة المنطقة المستهدفة. لاستخدام VmApplications في بعض المناطق المحظورة، يجب أن يكون لديك علامة الميزة المسجلة لهذا الاشتراك.
يجب أن يحتوي إصدار صورة المعرض الذي ينشر مناطق ملف التعريف {المناطق} على موقع إصدار الصورة {الموقع}. يجب أن تحتوي قائمة مناطق النسخ المتماثل على الموقع الذي يوجد فيه إصدار التطبيق.
لا يسمح بالمناطق المكررة في مناطق النشر المستهدفة. قد لا تحتوي مناطق النشر على تكرارات.
لا تدعم موارد إصدار تطبيق المعرض حاليا التشفير. خاصية التشفير للمناطق المستهدفة غير مدعومة لتطبيقات الجهاز الظاهري
لا يتطابق اسم الكيان مع الاسم في عنوان URL للطلب. لا يتطابق إصدار تطبيق المعرض المحدد في عنوان url للطلب مع الإصدار المحدد في نص الطلب.
اسم إصدار تطبيق المعرض غير صالح. يجب أن يتبع اسم إصدار التطبيق Major(int32). ثانوي (int32). تنسيق Patch(int32)، حيث int يتراوح بين 0 و2,147,483,647 (شامل). على سبيل المثال، 1.0.0 و2018.12.1 وما إلى ذلك. يجب أن يتبع إصدار تطبيق المعرض التنسيق المحدد.

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