مشاركة عبر


نشر Azure Container Apps باستخدام الأمر az containerapp up

az containerapp up أمر (أو up) هو أسرع طريقة لنشر تطبيق في تطبيقات الحاويات Azure من صورة موجودة، أو كود مصدر محلي، أو مستودع GitHub. عند استخدام هذا الأمر الواحد، يمكنك تشغيل تطبيق الحاوية خلال دقائق.

يمكن للأمر بناء ودفع صورة الحاوية إلى Azure Container Registry عند توفير كود المصدر المحلي أو مستودع GitHub. عندما تعمل من مستودع GitHub، يقوم الأمر بإنشاء سير عمل من GitHub Actions يقوم تلقائيا ببناء ودفع صورة حاوية جديدة عند التزام التغييرات في مستودع GitHub الخاص بك.

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

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

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

استخدام الموارد الحالية

يمكن للأمر up إنشاء موارد، أو استخدام موارد موجودة، بما في ذلك:

  • مجموعة الموارد.
  • سجل الحاويات.
  • بيئة تطبيقات الحاويات ومساحة عمل تحليلات السجل.
  • تطبيق الحاوية الخاص بك.

إذا كنت بحاجة لتخصيص بيئة تطبيقات الحاويات، استخدم أولا الأمر az containerapp env create لإنشاء وتخصيص بيئتك. عندما تشغل up الأمر، استخدم --environment الخيار لتحديد البيئة المخصصة.

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

لمزيد من المعلومات حول الأمر az containerapp up وخياراته، انظر az containerapp up.

إعداد بيئة Azure CLI

  1. استخدم واجهة برمجة Azure لتسجيل الدخول إلى Azure.

    az login
    
  2. تثبيت إضافة Container Apps لجهاز Azure CLI.

    az extension add --name containerapp --upgrade
    
  3. سجل Microsoft.App مساحة الاسم.

    az provider register --namespace Microsoft.App
    
  4. سجل المزود Microsoft.OperationalInsights في مساحة عمل Log Analytics.

    az provider register --namespace Microsoft.OperationalInsights
    

النشر من صورة موجودة

يمكنك نشر تطبيق حاوية يستخدم صورة موجودة في سجل حاوية عام أو خاص. إذا قمت بالنشر من سجل خاص، يجب عليك تقديم بيانات اعتمادك باستخدام ال --registry-server، --registry-usernameو --registry-password الخيارات.

يمكنك استخدام الكود المثال التالي لنشر تطبيق حاوية من صورة موجودة. قبل تنفيذ الأمر، استبدل الحافظات المؤقتة، التي تكون محاطة بأقواس زاوية، بالقيم الخاصة بك.

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --image <REGISTRY_SERVER>/<IMAGE_NAME>:<TAG> \
  --ingress external \
  --target-port <PORT_NUMBER> 

ينفذ هذا الأمر الإجراءات التالية:

  1. قم بإنشاء مجموعة الموارد.
  2. إنشاء بيئة ومساحة عمل Log Analytics.
  3. إنشاء تطبيق حاوية يسحب الصورة من سجل عام ونشره.
  4. يضبط قيمة تطبيق ingress الحاوية على external مع تعيين المنفذ المستهدف على القيمة المحددة.

يمكنك أيضا استخدام الأمر up لإعادة نشر تطبيق الحاوية. إذا كنت تريد إعادة النشر باستخدام صورة جديدة، فاستخدم --image الخيار لتحديد صورة جديدة. تأكد من أن الخيارات --resource-group وتم --environment ضبطهما على القيم من النشر الأصلي.

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --image <REGISTRY_SERVER>/<IMAGE_NAME>:<TAG> \
  --resource-group <RESOURCE_GROUP_NAME> \
  --environment <ENVIRONMENT_NAME> \
  --ingress external \
  --target-port <PORT_NUMBER> 

النشر من التعليمات البرمجية المصدر المحلي

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

يمكن للأمر إنشاء الصورة باستخدام Dockerfile أو بدونه. في النسخ التي لا تستخدم Dockerfile، تدعم اللغات التالية:

  • .NET
  • Node.js
  • PHP
  • Python

يمكنك استخدام الكود النموذجي التالي لنشر تطبيق حاوية من كود المصدر المحلي:

    az containerapp up \
      --name <CONTAINER_APP_NAME> \
      --source <SOURCE_DIRECTORY>\
      --ingress external 

ينفذ هذا الأمر الإجراءات التالية:

  1. قم بإنشاء مجموعة الموارد.
  2. إنشاء بيئة ومساحة عمل Log Analytics.
  3. ينشئ سجل في سجل الحاويات.
  4. يبني صورة الحاوية (باستخدام ملف Docker إذا كان موجودا).
  5. دفع الصورة إلى السجل.
  6. إنشاء تطبيق الحاوية ونشره.

عندما يتضمن ملف دوكر التعليمات EXPOSE ، يقوم up الأمر بتكوين مدخل الحاوية ومنفذ الهدف باستخدام المعلومات الموجودة في ملف دوكر. إذا قمت بتكوين الدخول من خلال Dockerfile أو لا يتطلب تطبيقك الدخول، يمكنك حذف --ingress الخيار.

يتضمن إخراج الأمر عنوان URL لتطبيق الحاوية.

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

إذا حدث فشل، يمكنك تشغيل الأمر مرة أخرى مع --debug خيار الحصول على مزيد من المعلومات. إذا فشل الإنشاء بدون Dockerfile، يمكنك محاولة إضافة Dockerfile وتشغيل الأمر مرة أخرى.

لاستخدام az containerapp up الأمر لإعادة نشر تطبيق الحاوية مع صورة محدثة، قم بتضمين خيارات --resource-group و --environment لإعادة نشر تطبيق الحاوية من الشفرة المصدرية المحلية، اتبع الخطوات التالية:

  1. قم بإجراء تغييرات على التعليمات البرمجية المصدر.

  2. شغّل الأمر التالي:

    az containerapp up \
      --name <CONTAINER_APP_NAME> \
      --source <SOURCE_DIRECTORY> \
      --resource-group <RESOURCE_GROUP_NAME> \
      --environment <ENVIRONMENT_NAME>
    

النشر من مستودع GitHub

عند استخدام az containerapp up الأمر للنشر من مستودع GitHub، فإنه ينشئ سير عمل GitHub Actions الذي يبني صورة الحاوية، ويدفعها إلى سجل، وينشر تطبيق الحاوية. إذا لم تحدد سجل، يقوم الأمر بإنشاء سجل في سجل الحاويات.

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

يمكنك استخدام الكود المثال التالي لنشر تطبيق حاوية من مستودع GitHub:

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --repo <GITHUB_REPOSITORY_URL> \
  --ingress external 

ينفذ هذا الأمر الإجراءات التالية:

  1. قم بإنشاء مجموعة الموارد.
  2. إنشاء بيئة ومساحة عمل Log Analytics.
  3. ينشئ سجل في سجل الحاويات.
  4. يبني صورة الحاوية باستخدام ملف Dockerfile.
  5. دفع الصورة إلى السجل.
  6. إنشاء تطبيق الحاوية ونشره.
  7. إنشاء سير عمل GitHub Actions لإنشاء صورة الحاوية ونشر تطبيق الحاوية عند دفع التغييرات المستقبلية إلى مستودع GitHub.

إذا فشل الأمر لأن مبدأ الخدمة لا يمكن إنشاؤه، يمكنك إنشاء مبدأ خدمة يدويا في Azure. ثم يمكنك تمرير المعلومات عنها إلى الأمر:

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --repo <GITHUB_REPOSITORY_URL> \
  --service-principal-client-id "$SERVICE_PRINCIPAL_CLIENT_ID" \
  --service-principal-client-secret "$SERVICE_PRINCIPAL_CLIENT_SECRET" \
  --service-principal-tenant-id "$AZURE_TENANT_ID"
  --ingress external 

إذا قمت بتكوين الدخول من خلال Dockerfile أو لا يتطلب تطبيقك الدخول، يمكنك حذف --ingress الخيار.

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

تكوين إعدادات تطبيق الحاوية

يوفر الأمر az containerapp up طريقة مبسطة لإنشاء ونشر تطبيقات الحاويات التي تستخدم الإعدادات الافتراضية بشكل أساسي. ومع ذلك، بعد استخدام الأمر up ، تحتاج إلى تشغيل أوامر Azure CLI أخرى مثل التالية إذا أردت تكوين إعدادات أكثر تقدما:

إذا أردت تخصيص إعدادات أخرى لتطبيق الحاوية، مثل إعدادات الموارد أو التكبير، استخدم up أولا الأمر لنشر تطبيق الحاوية. ثم استخدم الأمر az containerapp update لتغيير هذه الإعدادات. الأمر az containerapp up ليس اختصارا للأمر az containerapp update .

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