كيفية نشر تطبيقات متعددة اللغات في خطة Azure Spring Apps Enterprise

إشعار

يعد Azure Spring Apps هو الاسم الجديد لخدمة Azure Spring Cloud. رغم أن الخدمة تحمل اسماً جديداً، سترى الاسم القديم في بعض الأماكن لفترة من الوقت بينما نعمل على تحديث الأصول مثل لقطات الشاشة، ومقاطع الفيديو، والرسوم التخطيطية.

تنطبق هذه المقالة على:❌ Basic/Standard ✔️ Enterprise

توضح هذه المقالة كيفية نشر تطبيقات متعددة اللغات في خطة Azure Spring Apps Enterprise، وكيف يمكن لهذه التطبيقات متعددة اللغات استخدام ميزات خدمة البناء التي توفرها buildpacks.

المتطلبات الأساسية

نشر تطبيقات متعددة اللغات في مثيل خدمة

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

إدارة المنشئين

عند إنشاء مثيل ل Azure Spring Apps Enterprise، يجب عليك اختيار منشئ افتراضي من إحدى حزم بناء عائلة اللغة المدعومة التالية:

لمزيد من المعلومات، راجع Language Family Buildpacks for VMware Tanzu.

تدعم buildpacks الإنشاء باستخدام التعليمات البرمجية المصدر أو البيانات الاصطناعية لتطبيقات Java و.NET Core وGo وملفات الويب الثابتة Node.js وPython. يمكنك أيضا رؤية إصدارات buildpack أثناء إنشاء منشئ أو عرضه. ويمكنك إنشاء منشئ مخصص عن طريق تحديد buildpacks ومكدس.

يتم سرد جميع المنشئين الذين تم تكوينهم في مثيل خدمة Azure Spring Apps في صفحة Build Service ، كما هو موضح في لقطة الشاشة التالية:

لقطة شاشة لمدخل Azure تعرض صفحة Build Service مع تمييز قائمة Builders.

حدد إضافة لإنشاء منشئ جديد. تظهر لقطة الشاشة التالية الموارد التي يجب استخدامها لإنشاء المنشئ المخصص. يتضمن مكدس نظام التشغيل و Jammy TinyBionic FullJammy Baseو و.Jammy FullBionic Base يعتمد Bionic على Ubuntu 18.04 (Bionic Beaver) ويستند جامى على Ubuntu 22.04 (Jammy Jellyfish). لمزيد من المعلومات، راجع قسم توصيات مكدس نظام التشغيل.

نوصي باستخدام Jammy OS Stack لإنشاء منشئك لأن VMware مهمل Bionic OS Stack.

لقطة شاشة لمدخل Microsoft Azure تعرض صفحة Add Builder مع تمييز OS Stack واسم buildpack المحدد.

يمكنك أيضا تحرير منشئ مخصص عندما لا يتم استخدام المنشئ في عملية نشر. يمكنك تحديث حزم buildpack أو OS Stack، لكن اسم المنشئ للقراءة فقط.

لقطة شاشة لمدخل Microsoft Azure تعرض صفحة Build Service مع تمييز زر علامة الحذف وخيار قائمة Edit builder.

المنشئ هو مورد يساهم باستمرار في عمليات النشر الخاصة بك. ويوفر أحدث صور وقت التشغيل وأحدث buildpacks.

لا يمكنك حذف منشئ عند إنشاء عمليات نشر نشطة موجودة مع المنشئ. لحذف منشئ في هذه الحالة، استخدم الخطوات التالية:

  1. احفظ التكوين كمنشئ جديد.
  2. نشر التطبيقات باستخدام المنشئ الجديد. ترتبط عمليات التوزيع بالمنشئ الجديد.
  3. ترحيل عمليات النشر ضمن المنشئ السابق إلى المنشئ الجديد.
  4. حذف المنشئ الأصلي.

توصيات مكدس نظام التشغيل

في Azure Spring Apps، نوصي باستخدام Jammy OS Stack لإنشاء منشئك لأنه Bioinic OS Stack في سطر للإهمال بواسطة VMware. تصف القائمة التالية الخيارات المتوفرة:

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

    • معظم تطبيقات Go.
    • تطبيقات Java. لا تتوفر بعض خيارات تكوين Apache Tomcat، مثل إعداد bin/setenv.sh، لأن Tiny لا يحتوي على shell.
  • قاعدة التشويش: مناسبة لمعظم التطبيقات دون ملحقات أصلية.

    • تطبيقات Java وتطبيقات .NET Core.
    • انتقل إلى التطبيقات التي تتطلب بعض مكتبات C.
    • تطبيقات Node.js أو Python أو Web Servers بدون ملحقات أصلية.
  • تشويش كامل: يتضمن معظم المكتبات، وهو مناسب للتطبيقات ذات الملحقات الأصلية. على سبيل المثال، يتضمن مكتبة خطوط أكثر اكتمالا. إذا كان تطبيقك يعتمد على الملحق الأصلي، فاستخدم المكدس Full .

    • Node.js أو تطبيقات Python مع ملحقات أصلية.

لمزيد من المعلومات، راجع Ubuntu Stacks في وثائق VMware.

إدارة سجل الحاوية

يوضح لك هذا القسم كيفية إدارة سجل الحاوية المستخدم من قبل خدمة البناء إذا قمت بتمكين خدمة البناء مع سجل الحاوية الخاص بك. إذا قمت بتمكين خدمة البناء باستخدام سجل حاويات مدار من Azure Spring Apps، يمكنك تخطي هذا القسم.

بعد تمكين سجل حاوية مستخدم مع خدمة الإنشاء، يمكنك إظهار السجل وتكوينه باستخدام مدخل Microsoft Azure أو Azure CLI.

استخدم الخطوات التالية لإظهار سجل الحاوية وإضافته وتحريره وحذفه:

  1. افتح مدخل Azure.

  2. حدد Container registry في جزء التنقل.

  3. حدد Add لإنشاء سجل حاوية.

    لقطة شاشة لمدخل Azure تعرض صفحة تسجيل الحاوية مع زر إضافة سجل الحاوية.

  4. بالنسبة إلى سجل الحاوية، حدد زر علامة الحذف (...)، ثم حدد تحرير لعرض تكوين السجل.

    لقطة شاشة لمدخل Azure تعرض صفحة تسجيل الحاوية.

  5. راجع القيم الموجودة في صفحة تحرير سجل الحاوية.

    لقطة شاشة لمدخل Azure تعرض صفحة تسجيل الحاوية مع فتح جزء تحرير سجل الحاوية.

  6. لحذف سجل حاوية، حدد زر علامة الحذف (...)، ثم حدد حذف لحذف السجل. إذا تم استخدام سجل الحاوية بواسطة خدمة الإنشاء، فلا يمكن حذفه.

    لقطة شاشة لمدخل Azure تعرض صفحة تسجيل الحاوية مع فتح جزء تحرير سجل الحاوية وتمييز مربعات اسم المستخدم وكلمة المرور.

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

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

  1. افتح مدخل Azure.

  2. حدد Build Service في جزء التنقل.

  3. حدد سجل الحاوية المرجعي لتحديث سجل الحاوية لخدمة البناء.

    لقطة شاشة لمدخل Azure تعرض صفحة Build Service مع تمييز سجل الحاوية المشار إليه.

إنشاء ونشر تطبيقات متعددة اللغات

يمكنك إنشاء ونشر تطبيقات متعددة اللغات بالطرق التالية باستخدام سجل الحاوية:

  • بالنسبة لخدمة الإنشاء باستخدام سجل الحاوية المدار في Azure Spring Apps، يمكنك إنشاء تطبيق إلى صورة ثم توزيعه إلى مثيل خدمة Azure Spring Apps الحالي. يتم تنفيذ الإنشاء والنشر معا باستخدام az spring app deploy الأمر .

  • بالنسبة لخدمة الإنشاء باستخدام سجل حاوية يديره المستخدم، يمكنك إنشاء تطبيق في صورة حاوية ثم نشر الصورة إلى مثيل Azure Spring Apps Enterprise الحالي والمثيلات الأخرى. أوامر الإنشاء والنشر منفصلة. يمكنك استخدام أمر الإنشاء لإنشاء بنية أو تحديثها، ثم استخدام أمر التوزيع لنشر صورة الحاوية إلى مثيل الخدمة.

لمزيد من المعلومات، راجع قسم Build service on demand في Use Tanzu Build Service.

توضح الأمثلة التالية بعض أوامر الإنشاء المفيدة لاستخدامها.

az configure --defaults group=<resource-group-name> spring=<service-name>

az spring build-service build list
az spring build-service build show --name <build-name>
az spring build-service build create --name <build-name> --artifact-path <artifact-path>
az spring build-service build update --name <build-name> --artifact-path <artifact-path>
az spring build-service build delete --name <build-name>

تظهر أمثلة Azure CLI التالية إنشاء ملف بيانات اصطناعية ونشره لسيناريو سجل حاوية:

  • سجل الحاويات المدار في Azure Spring Apps.
  • سجل الحاوية المدار من قبل المستخدم.

ينشئ هذا المثال وينشر في أمر واحد. يحدد الأمر التالي منشئا لإنشاء تطبيق إلى صورة حاوية، ثم ينشر التطبيق مباشرة في مثيل خدمة Azure Springs Apps Enterprise.

إذا لم تحدد المنشئ، يتم استخدام منشئ default .

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --builder <builder-name> \
    --artifact-path <path-to-your-JAR-file>

إذا قمت بنشر التطبيق مع ملف أداة، فاستخدم --artifact-path لتحديد مسار الملف. كل من ملفات JAR و WAR مقبولة.

إذا اكتشف Azure CLI حزمة WAR ك JAR رقيق، فاستخدم --disable-validation لتعطيل التحقق من الصحة.

ينشر المثال التالي مجلد التعليمات البرمجية المصدر إلى نشر نشط باستخدام المعلمة --source-path لتحديد المجلد.

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --builder <builder-name> \
    --source-path <path-to-source-code>

يمكنك أيضا تكوين بيئة الإنشاء لإنشاء التطبيق. على سبيل المثال، في تطبيق Java، يمكنك تحديد إصدار JDK باستخدام BP_JVM_VERSION بيئة الإنشاء.

لتحديد بيئات الإنشاء، استخدم --build-env، كما هو موضح في المثال التالي. يتم وصف متغيرات بيئة الإنشاء المتوفرة لاحقا في هذه المقالة.

ينشر الأمر التالي تطبيقا:

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --build-env <key1=value1> <key2=value2> \
    --builder <builder-name> \
    --artifact-path <path-to-your-JAR-file>

لكل بنية، يمكنك أيضا تحديد موارد البناء، كما هو موضح في المثال التالي.

ينشر الأمر التالي تطبيقا:

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --build-env <key1=value1> <key2=value2> \
    --build-cpu <build-cpu-size> \
    --build-memory <build-memory-size> \
    --builder <builder-name> \
    --artifact-path <path-to-your-JAR-file>

مورد وحدة المعالجة المركزية/الذاكرة الافتراضي للبناء هو 1 vCPU, 2 Gi. إذا كان التطبيق الخاص بك يحتاج إلى قدر أصغر أو أكبر من الذاكرة، فاستخدم --build-memory لتحديد موارد الذاكرة - على سبيل المثال، 1Gi500Miو 2Giو وهكذا. إذا كان التطبيق الخاص بك يحتاج إلى كمية أصغر أو أكبر من موارد وحدة المعالجة المركزية، فاستخدم --build-cpu لتحديد موارد وحدة المعالجة المركزية - على سبيل المثال، 500m12و و وهكذا. الحد الأقصى لمورد وحدة المعالجة المركزية/الذاكرة للبنية هو 8 vCPU, 16Gi.

يتم تقييد موارد وحدة المعالجة المركزية والذاكرة من خلال حجم تجمع وكيل خدمة البناء. لمزيد من المعلومات، راجع قسم Build agent pool في Use Tanzu Build Service. لا يمكن أن يتجاوز مجموع الحصة النسبية لمورد بناء المعالجة حجم تجمع العامل.

يعتمد العدد المتوازي لمهام الإنشاء على حجم تجمع العامل وكل مورد بناء. على سبيل المثال، إذا كان مورد البناء هو الافتراضي 1 vCPU, 2 Gi وحجم تجمع العامل هو 6 vCPU, 12 Gi، فإن رقم البناء المتوازي هو 6.

يتم حظر مهام الإنشاء الأخرى لفترة من الوقت بسبب قيود الحصة النسبية للموارد.

يجب إنصات التطبيق الخاص بك على المنفذ 8080. تتجاوز SERVER_PORT تطبيقات Spring Boot استخدام 8080 تلقائيا.

اللغات المدعومة للتوزيع

يوضح الجدول التالي الميزات المدعومة لكل لغة.

ميزة Java Python العقدة .NET Core انتقال الملفات الثابتة صورة Java الأصلية PHP
إدارة دورة حياة التطبيق ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
تعيين نقطة نهاية ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Azure Monitor ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
من خارج الصندوق تكامل APM ✔️
توزيع الأزرق- الأخضر ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
مجال مخصص ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
التحجيم - التحجيم التلقائي ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
التحجيم - التحجيم اليدوي (الداخل/الخارج، الأعلى/الأسفل) ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
الهوية المُدارة ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
مدخل واجهة برمجة التطبيقات ل VMware Tanzu ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Spring Cloud Gateway ل VMware Tanzu ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
خدمة تكوين التطبيق ل VMware Tanzu ✔️ ✔️
سجل خدمة VMware Tanzu ✔️ ✔️
App Live View ل VMware Tanzu ✔️ ✔️
الشبكة الظاهرية ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
عنوان IP الصادر ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
E2E TLS ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
استكشاف الأخطاء وإصلاحها المتقدم - محادثة نصية/كومة ذاكرة مؤقتة/النسخة الاحتياطية JFR ✔️
إحضار مساحة التخزين الخاصة بك ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
دمج ربط الخدمة مع Resource Connector ✔️ ✔️
مناطق قابلية الوصول ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
أحداث دورة حياة التطبيق ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
حجم التطبيق مخفض - 0.5 vCPU و512 MB ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
التنفيذ التلقائي لتوزيع التطبيق باستخدام Terraform وAzure Pipeline Task ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
حذف مبدئي ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
تجربة تشخيصية تفاعلية (تعتمد على AppLens) ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
SLA ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
تخصيص فحوصات السلامة ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
اتصال Web shell لاستكشاف الأخطاء وإصلاحها ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ️ ✔️ ✔️
تصحيح الأخطاء عن بعد ✔️

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

قيود صورة Java الأصلية

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

  • تتطلب ميزات Java التالية التكوين في وقت الإنشاء القابل للتنفيذ:
    • تحميل الفئة الديناميكية
    • التفكير
    • وكيل ديناميكي
    • JNI (واجهة Java الأصلية)
    • التسلسل
  • لم يعد Bytecode متوفرا في وقت التشغيل، لذلك لا يمكن تصحيح الأخطاء والمراقبة باستخدام الأدوات الموجهة إلى JVMTI.

الميزات التالية غير مدعومة في Azure Spring Apps بسبب قيود صورة Java الأصلية. ستدعمها Azure Spring Apps عندما تتغلب صورة Java الأصلية والمجتمع على القيد.

ميزة لماذا لا يتم دعمه
Azure Monitor لا تدعم الصور الأصلية المبنية من GraalVM مقاييس JVM.
التحجيم - التحجيم التلقائي لا تدعم الصور الأصلية المبنية من GraalVM مقاييس JVM.
تكامل APM الجاهز لا يدعم بائع APM و Buildpack الصورة الأصلية.
الهوية المُدارة لا تدعم Azure SDKs الصورة الأصلية.
استكشاف الأخطاء وإصلاحها المتقدم - مؤشر الترابط/كومة الذاكرة المؤقتة/تفريغ JFR لا تدعم الصور الأصلية المبنية من GraalVM مؤشر الترابط/كومة الذاكرة المؤقتة/تفريغ JFR.
تصحيح الأخطاء عن بعد لا تدعم صورة GraalVM الأصلية تصحيح الأخطاء عن بعد.
اتصال بدون كلمة مرور باستخدام خدمة الاتصال or لا يدعم Azure Java SDK الصورة الأصلية.

إشعار

في أقسام تكوين إنشاء ونشر اللغة المختلفة التالية، --build-env يعني استخدام البيئة في مرحلة الإنشاء. --env يعني أنه يتم استخدام البيئة في مرحلة وقت التشغيل.

نوصي بتحديد إصدار اللغة في حالة تغيير الإصدار الافتراضي. على سبيل المثال، استخدم --build-env BP_JVM_VERSION=11.* لتحديد Java 11 كإصدار JDK. بالنسبة للغات الأخرى، يمكنك الحصول على اسم متغير البيئة في الأوصاف التالية لكل لغة.

نشر تطبيقات Java

buildpack لنشر تطبيقات Java هو tanzu-buildpacks/java-azure.

يسرد الجدول التالي الميزات المدعومة في Azure Spring Apps:

وصف الميزة تعليق متغير البيئة الاستخدام
يوفر Microsoft OpenJDK. تكوين إصدار JVM. إصدار JDK الافتراضي هو 17. مدعوم حاليا: JDK 8 و11 و17 و21. BP_JVM_VERSION --build-env BP_JVM_VERSION=11.*
وقت التشغيل env. تكوين ما إذا كان يتم تمكين Java Native Memory Tracking (NMT). تُعد القيمة الافتراضية هي صحيح. غير مدعوم في JDK 8. BPL_JAVA_NMT_ENABLED --env BPL_JAVA_NMT_ENABLED=true
تكوين مستوى التفاصيل لإخراج Java Native Memory Tracking (NMT). القيمة الافتراضية هي ملخص. تعيين إلى تفاصيل لإخراج NMT التفصيلي. BPL_JAVA_NMT_LEVEL --env BPL_JAVA_NMT_ENABLED=summary
أضف شهادات CA إلى مخزن ثقة النظام في وقت الإنشاء والتشغيل. راجع قسم Configure CA certificates for app builds and deployments في كيفية تكوين تكامل APM وشهادات CA. ‏‫غير متوفر‬ ‏‫غير متوفر‬
التكامل مع Application Insights وDynatrace و Elastic و New Relic و App Dynamic APM agent. راجع كيفية تكوين تكامل APM وشهادات CA. ‏‫غير متوفر‬ ‏‫غير متوفر‬
نشر حزمة WAR باستخدام Apache Tomcat أو TomEE. تعيين خادم التطبيق لاستخدامه. قم بتعيين tomcatلاستخدام Tomcat و tomee لاستخدام TomEE. القيمة الافتراضية هي tomcat. BP_JAVA_APP_SERVER --build-env BP_JAVA_APP_SERVER=tomee
دعم تطبيقات Spring Boot. يشير إلى ما إذا كنت ستساهم في دعم Spring Cloud Bindings للصورة في وقت الإنشاء. القيمة الافتراضية هي false. BP_SPRING_CLOUD_BINDINGS_DISABLED --build-env BP_SPRING_CLOUD_BINDINGS_DISABLED=false
يشير إلى ما إذا كان يجب تكوين خصائص بيئة Spring Boot تلقائيا من الروابط في وقت التشغيل. تتطلب هذه الميزة تثبيت روابط Spring Cloud بالفعل في وقت الإنشاء أو أنها لا تفعل شيئا. القيمة الافتراضية هي false. BPL_SPRING_CLOUD_BINDINGS_DISABLED --env BPL_SPRING_CLOUD_BINDINGS_DISABLED=false
دعم بناء التطبيقات المستندة إلى Maven من المصدر. يستخدم لمشروع متعدد الوحدات النمطية. يشير إلى الوحدة النمطية للعثور على البيانات الاصطناعية للتطبيق. الإعدادات الافتراضية للوحدة النمطية الجذر (فارغة). BP_MAVEN_BUILT_MODULE --build-env BP_MAVEN_BUILT_MODULE=./gateway
دعم بناء التطبيقات المستندة إلى Gradle من المصدر. يستخدم لمشروع متعدد الوحدات النمطية. يشير إلى الوحدة النمطية للعثور على البيانات الاصطناعية للتطبيق. الإعدادات الافتراضية للوحدة النمطية الجذر (فارغة). BP_GRADLE_BUILT_MODULE --build-env BP_GRADLE_BUILT_MODULE=./gateway
تمكين تكوين التسميات على الصورة التي تم إنشاؤها. تكوين كل من التسميات المحددة من OCI بأسماء متغيرات بيئة قصيرة وتسميات عشوائية باستخدام بناء جملة محددة بمسافة في متغير بيئة واحد. BP_IMAGE_LABELS
BP_OCI_AUTHORS
راجع المزيد من متغيرات البيئة هنا.
--build-env BP_OCI_AUTHORS=<value>
دمج عامل JProfiler. يشير إلى ما إذا كان يجب دمج دعم JProfiler. القيمة الافتراضية هي false. BP_JPROFILER_ENABLED مرحلة الإنشاء:
--build-env BP_JPROFILER_ENABLED=true
مرحلة وقت التشغيل:
--env BPL_JPROFILER_ENABLED=true
BPL_JPROFILER_PORT=<port> (اختياري، افتراضي إلى 8849)
BPL_JPROFILER_NOWAIT=true(اختياري. يشير إلى ما إذا كان يتم تنفيذ JVM قبل إرفاق JProfiler. القيمة الافتراضية صحيحة.)
يشير إلى ما إذا كان سيتم تمكين دعم JProfiler في وقت التشغيل. القيمة الافتراضية هي false. BPL_JPROFILER_ENABLED --env BPL_JPROFILER_ENABLED=false
يشير إلى المنفذ الذي يستمع إليه عامل JProfiler. القيمة الافتراضية هي 8849. BPL_JPROFILER_PORT --env BPL_JPROFILER_PORT=8849
يشير إلى ما إذا كان يتم تنفيذ JVM قبل إرفاق JProfiler. تُعد القيمة الافتراضية هي صحيح. BPL_JPROFILER_NOWAIT --env BPL_JPROFILER_NOWAIT=true
دمج عامل JRebel . يجب أن يحتوي التطبيق على ملف rebel-remote.xml . ‏‫غير متوفر‬ ‏‫غير متوفر‬
تقوم AES بتشفير تطبيق في وقت الإنشاء ثم فك تشفيره في وقت التشغيل. مفتاح AES لاستخدامه في وقت الإنشاء. BP_EAR_KEY --build-env BP_EAR_KEY=<value>
مفتاح AES لاستخدامه في وقت التشغيل. BPL_EAR_KEY --env BPL_EAR_KEY=<value>
دمج عامل AspectJ Weaver . <APPLICATION_ROOT>/ aop.xml موجود وs aspectj-weaver.*.jar موجود. ‏‫غير متوفر‬ ‏‫غير متوفر‬

نشر تطبيقات .NET

buildpack لنشر تطبيقات .NET هي tanzu-buildpacks/dotnet-core.

يسرد الجدول التالي الميزات المدعومة في Azure Spring Apps:

وصف الميزة تعليق متغير البيئة الاستخدام
تكوين إصدار وقت تشغيل .NET Core. يدعم Net6.0 وNet7.0 وNet8.0.
يمكنك التكوين من خلال ملف runtimeconfig.json أو MSBuild Project.
وقت التشغيل الافتراضي هو 6.0.*.
‏‫غير متوفر‬ ‏‫غير متوفر‬
أضف شهادات CA إلى مخزن ثقة النظام في وقت الإنشاء والتشغيل. راجع قسم Configure CA certificates for app builds and deployments في كيفية تكوين تكامل APM وشهادات CA. ‏‫غير متوفر‬ ‏‫غير متوفر‬
التكامل مع عوامل Dynatrace و New Relic APM. راجع كيفية تكوين تكامل APM وشهادات CA. ‏‫غير متوفر‬ ‏‫غير متوفر‬
تمكين تكوين التسميات على الصورة التي تم إنشاؤها. تكوين كل من التسميات المحددة من OCI بأسماء متغيرات بيئة قصيرة وتسميات عشوائية باستخدام بناء جملة محددة بمسافة في متغير بيئة واحد. BP_IMAGE_LABELS
BP_OCI_AUTHORS
راجع المزيد من متغيرات البيئة هنا.
--build-env BP_OCI_AUTHORS=<value>

نشر تطبيقات Python

buildpack لنشر تطبيقات Python هي tanzu-buildpacks/python.

يسرد الجدول التالي الميزات المدعومة في Azure Spring Apps:

وصف الميزة تعليق متغير البيئة الاستخدام
حدد إصدار Python. يدعم 3.8.*، 3.9.*، 3.10.*، 3.11.*، 3.12.*. القيمة الافتراضية هي 3.10.*
يمكنك تحديد الإصدار عبر BP_CPYTHON_VERSION متغير البيئة أثناء الإنشاء.
BP_CPYTHON_VERSION --build-env BP_CPYTHON_VERSION=3.8.*
أضف شهادات CA إلى مخزن ثقة النظام في وقت الإنشاء والتشغيل. راجع قسم Configure CA certificates for app builds and deployments في كيفية تكوين تكامل APM وشهادات CA. ‏‫غير متوفر‬ ‏‫غير متوفر‬
تمكين تكوين التسميات على الصورة التي تم إنشاؤها. تكوين كل من التسميات المحددة من OCI بأسماء متغيرات بيئة قصيرة وتسميات عشوائية باستخدام بناء جملة محددة بمسافة في متغير بيئة واحد. BP_IMAGE_LABELS
BP_OCI_AUTHORS
راجع المزيد من متغيرات البيئة هنا.
--build-env BP_OCI_AUTHORS=<value>

نشر تطبيقات Go

buildpack لنشر تطبيقات Go هي tanzu-buildpacks/go.

يسرد الجدول التالي الميزات المدعومة في Azure Spring Apps:

وصف الميزة تعليق متغير البيئة الاستخدام
حدد إصدار Go. يدعم 1.20.*، 1.21.*. القيمة الافتراضية هي 1.20.*.
يتم الكشف عن إصدار Go تلقائيا من ملف go.mod للتطبيق. يمكنك تجاوز هذا الإصدار عن طريق تعيين BP_GO_VERSION متغير البيئة في وقت الإنشاء.
BP_GO_VERSION --build-env BP_GO_VERSION=1.20.*
تكوين أهداف متعددة. تحديد أهداف متعددة لبنية Go. BP_GO_TARGETS --build-env BP_GO_TARGETS=./some-target:./other-target
أضف شهادات CA إلى مخزن ثقة النظام في وقت الإنشاء والتشغيل. راجع قسم Configure CA certificates for app builds and deployments في كيفية تكوين تكامل APM وشهادات CA. ‏‫غير متوفر‬ ‏‫غير متوفر‬
التكامل مع عامل Dynatrace APM. راجع كيفية تكوين تكامل APM وشهادات CA. ‏‫غير متوفر‬ ‏‫غير متوفر‬
تمكين تكوين التسميات على الصورة التي تم إنشاؤها. تكوين كل من التسميات المحددة من OCI بأسماء متغيرات بيئة قصيرة وتسميات عشوائية باستخدام بناء جملة محددة بمسافة في متغير بيئة واحد. BP_IMAGE_LABELS
BP_OCI_AUTHORS
راجع المزيد من متغيرات البيئة هنا.
--build-env BP_OCI_AUTHORS=<value>

توزيع تطبيقات Node.js

buildpack لنشر تطبيقات Node.js هي tanzu-buildpacks/nodejs.

يسرد الجدول التالي الميزات المدعومة في Azure Spring Apps:

وصف الميزة تعليق متغير البيئة الاستخدام
حدد إصدار عقدة. يدعم 16.*، 18.*، 19.*، 20.*. القيمة الافتراضية هي 20.*.
يمكنك تحديد إصدار العقدة عبر ملف .nvmrc أو .node-version في جذر دليل التطبيق. BP_NODE_VERSION يتجاوز الإعدادات.
BP_NODE_VERSION --build-env BP_NODE_VERSION=19.*
أضف شهادات CA إلى مخزن ثقة النظام في وقت الإنشاء والتشغيل. راجع قسم Configure CA certificates for app builds and deployments في كيفية تكوين تكامل APM وشهادات CA. ‏‫غير متوفر‬ ‏‫غير متوفر‬
التكامل مع Dynatrace و Elastic و New Relic و App Dynamic APM agent. راجع كيفية تكوين تكامل APM وشهادات CA. ‏‫غير متوفر‬ ‏‫غير متوفر‬
تمكين تكوين التسميات على الصورة التي تم إنشاؤها. تكوين كل من التسميات المحددة من OCI بأسماء متغيرات بيئة قصيرة وتسميات عشوائية باستخدام بناء جملة محددة بمسافة في متغير بيئة واحد. BP_IMAGE_LABELS
BP_OCI_AUTHORS
راجع المزيد من متغيرات البيئة هنا.
--build-env BP_OCI_AUTHORS=<value>
نشر تطبيق Angular باستخدام Angular Live Development Server. حدد المضيف قبل التشغيل ng serve في package.json: ng serve --host 0.0.0.0 --port 8080 --public-host <your application domain name>. يتوفر اسم مجال التطبيق في صفحة نظرة عامة على التطبيق، في قسم عنوان URL. قم بإزالة البروتوكول https:// قبل المتابعة. BP_NODE_RUN_SCRIPTS
NODE_ENV
--build-env BP_NODE_RUN_SCRIPTS=build NODE_ENV=development

نشر تطبيقات WebServer

buildpack لنشر تطبيقات WebServer هي tanzu-buildpacks/web-servers.

لمزيد من المعلومات، راجع نشر ملفات الويب الثابتة.

نشر تطبيقات Java Native Image (معاينة)

buildpack لنشر تطبيقات صورة Java الأصلية هي tanzu-buildpacks/java-native-image.

يمكنك نشر تطبيقات الصور الأصلية ل Spring Boot باستخدام buildpack tanzu-buildpacks/java-native-image . يوفر Spring Native الدعم لتحويل تطبيقات Spring Boot برمجيا إلى ملفات تنفيذية أصلية. تستخدم buildpack Liberica Native Image Kit (NIK) لإنشاء صور أصلية لتطبيقات Spring Boot ويتم دعم هذه التطبيقات بالكامل.

عند إنشاء صورة Java أصلية، يجب عليك تعيين بيئة BP_NATIVE_IMAGE البناء إلى true ويجب ألا يكون مورد ذاكرة البناء أقل من 8Gi. يجب ألا يكون حجم تجمع وكيل خدمة البناء أقل من 4 vCPU, 8 Gi. لمزيد من المعلومات، راجع قسم Build agent pool في Use Tanzu Build Service.

إذا كنت ترغب في إنشاء الصورة الأصلية في صورة حاوية بحجم أصغر، فإننا نوصي باستخدام منشئ مع Jammy Tiny مكدس نظام التشغيل. لمزيد من المعلومات، راجع قسم توصيات مكدس نظام التشغيل.

يسرد الجدول التالي الميزات المدعومة في Azure Spring Apps:

وصف الميزة تعليق متغير البيئة الاستخدام
التكامل مع Bellsoft OpenJDK. تكوين إصدار JDK. مدعوم حاليا: JDK 8 و11 و17 و20. BP_JVM_VERSION --build-env BP_JVM_VERSION=17
تكوين وسيطات للأمر native-image . وسيطات لتمريرها مباشرة إلى الأمر الأصلي للصورة. يجب أن تكون هذه الوسيطات صالحة ومكونة بشكل صحيح أو يفشل أمر الصورة الأصلية. BP_NATIVE_IMAGE_BUILD_ARGUMENTS --build-env BP_NATIVE_IMAGE_BUILD_ARGUMENTS="--no-fallback"
أضف شهادات CA إلى مخزن ثقة النظام في وقت الإنشاء والتشغيل. راجع كيفية تكوين تكامل APM وشهادات CA. غير قابل للتطبيق. غير قابل للتطبيق.
تمكين تكوين التسميات على الصورة التي تم إنشاؤها تكوين كل من التسميات المحددة من OCI بأسماء متغيرات بيئة قصيرة وتسميات عشوائية باستخدام بناء جملة محددة بمسافة في متغير بيئة واحد. BP_IMAGE_LABELS
BP_OCI_AUTHORS
راجع المزيد من متغيرات البيئة هنا.
--build-env BP_OCI_AUTHORS=<value>
دعم بناء التطبيقات المستندة إلى Maven من المصدر. يستخدم لمشروع متعدد الوحدات النمطية. يشير إلى الوحدة النمطية للعثور على البيانات الاصطناعية للتطبيق. الإعدادات الافتراضية للوحدة النمطية الجذر (فارغة). BP_MAVEN_BUILT_MODULE --build-env BP_MAVEN_BUILT_MODULE=./gateway

هناك بعض القيود لصورة Java الأصلية. لمزيد من المعلومات، راجع قسم قيود صورة Java الأصلية .

توزيع تطبيقات PHP

buildpack لنشر تطبيقات PHP هي tanzu-buildpacks/php.

حزمة بناء Tanzu PHP متوافقة فقط مع مكدس نظام التشغيل الكامل. نوصي باستخدام منشئ مع Jammy Full مكدس نظام التشغيل. لمزيد من المعلومات، راجع قسم توصيات مكدس نظام التشغيل.

يسرد الجدول التالي الميزات المدعومة في Azure Spring Apps:

وصف الميزة تعليق متغير البيئة الاستخدام
حدد إصدار PHP. تكوين إصدار PHP. مدعوم حاليا: PHP 8.1.*، و8.2 .*. القيمة الافتراضية هي 8.1.* BP_PHP_VERSION --build-env BP_PHP_VERSION=8.0.*
أضف شهادات CA إلى مخزن ثقة النظام في وقت الإنشاء والتشغيل. راجع قسم Configure CA certificates for app builds and deployments في كيفية تكوين تكامل APM وشهادات CA. ‏‫غير متوفر‬ ‏‫غير متوفر‬
التكامل مع Dynatrace و New Relic و App Dynamic APM agent. راجع كيفية تكوين تكامل APM وشهادات CA. ‏‫غير متوفر‬ ‏‫غير متوفر‬
حدد خادم ويب. خيارات الإعداد هي php-server وhttpd وninx. القيمة الافتراضية هي php-server. BP_PHP_SERVER --build-env BP_PHP_SERVER=httpd
تكوين دليل ويب. عندما يكون خادم الويب HTTPD أو NGINX، يتم تعيين دليل الويب افتراضيا إلى htdocs. عندما يكون خادم الويب هو خادم PHP المضمن، يتم تعيين دليل الويب افتراضيا إلى /workspace. BP_PHP_WEB_DIR --build-env BP_PHP_WEB_DIR=htdocs

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