مشاركة عبر


AzureContainerApps@1 - مهمة نشر تطبيقات حاوية Azure v1

مهمة Azure DevOps لإنشاء تطبيقات حاوية Azure ونشرها.

إعراب

# Azure Container Apps Deploy v1
# An Azure DevOps Task to build and deploy Azure Container Apps.
- task: AzureContainerApps@1
  inputs:
  # advanced
    #workingDirectory: # string. Alias: cwd. Working Directory. 
    #appSourcePath: # string. Application source path. 
    azureSubscription: # string. Alias: connectedServiceNameARM. Required. Azure Resource Manager connection. 
    #acrName: # string. Azure Container Registry name. 
    #acrUsername: # string. Azure Container Registry username. 
    #acrPassword: # string. Azure Container Registry password. 
    #dockerfilePath: # string. Dockerfile path. 
    #imageToBuild: # string. Docker image to build. 
    #imageToDeploy: # string. Docker image to deploy. 
    #containerAppName: # string. Azure Container App name. 
    #resourceGroup: # string. Azure resource group name. 
    #containerAppEnvironment: # string. Azure Container App environment. 
    #runtimeStack: # string. Application runtime stack. 
    #kind: # string. Container App kind. 
    #targetPort: # string. Application target port. 
    #location: # string. Location of the Container App. 
    #environmentVariables: # string. Environment variables. 
    #ingress: # string. Ingress setting. 
    #yamlConfigPath: # string. YAML configuration file path. 
    #disableTelemetry: # boolean. Disable telemetry.
# Azure Container Apps Deploy v1
# An Azure DevOps Task to build and deploy Azure Container Apps.
- task: AzureContainerApps@1
  inputs:
  # advanced
    #workingDirectory: # string. Alias: cwd. Working Directory. 
    #appSourcePath: # string. Application source path. 
    azureSubscription: # string. Alias: connectedServiceNameARM. Required. Azure Resource Manager connection. 
    #acrName: # string. Azure Container Registry name. 
    #acrUsername: # string. Azure Container Registry username. 
    #acrPassword: # string. Azure Container Registry password. 
    #dockerfilePath: # string. Dockerfile path. 
    #imageToBuild: # string. Docker image to build. 
    #imageToDeploy: # string. Docker image to deploy. 
    #containerAppName: # string. Azure Container App name. 
    #resourceGroup: # string. Azure resource group name. 
    #containerAppEnvironment: # string. Azure Container App environment. 
    #runtimeStack: # string. Application runtime stack. 
    #targetPort: # string. Application target port. 
    #location: # string. Location of the Container App. 
    #environmentVariables: # string. Environment variables. 
    #ingress: # string. Ingress setting. 
    #yamlConfigPath: # string. YAML configuration file path. 
    #disableTelemetry: # boolean. Disable telemetry.

المدخلات

دليل العمل
الاسم المستعار للإدخل: cwd. Person.

دليل العمل الحالي حيث يتم تشغيل البرنامج النصي. فارغ هو جذر المستودع (البناء) أو البيانات الاصطناعية (الإصدار)، وهو $(System.DefaultWorkingDirectory).


مسار مصدر التطبيق
Person.

المسار المطلق على مشغل التعليمات البرمجية للتطبيق المصدر المراد إنشاؤه. إذا لم يتم توفيرها، يجب توفير الوسيطة "imageToDeploy" للتأكد من أن تطبيق الحاوية يحتوي على صورة للإشارة إليها.

عند دفع صورة جديدة إلى ACR، يلزم إدخالات المهام acrNameappSourcePath.


اتصال Azure Resource Manager
الاسم المستعار للإدخل: connectedServiceNameARM. Person. مطلوب.

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


اسم سجل حاويات Azure
Person.

اسم Azure Container Registry الذي سيتم دفع صورة التطبيق القابلة للتشغيل إليه.

عند دفع صورة جديدة إلى ACR، يلزم إدخالات المهام acrNameappSourcePath.


acrUsername - اسم مستخدم سجل حاويات Azure
Person.

اسم المستخدم المستخدم لمصادقة طلبات الدفع إلى Azure Contrainer Registry المتوفر. إذا لم يتم توفيره، إنشاء رمز مميز للوصول عبر "az acr login" وتوفيره إلى "تسجيل الدخول إلى docker" لمصادقة الطلبات.


acrPassword - كلمة مرور Azure Container Registry
Person.

كلمة المرور المستخدمة لمصادقة طلبات الدفع إلى Azure Contrainer Registry المتوفر. إذا لم يتم توفيره، إنشاء رمز مميز للوصول عبر "az acr login" وتوفيره إلى "تسجيل الدخول إلى docker" لمصادقة الطلبات.


مسار dockerfilePath - Dockerfile
Person.

المسار النسبي (_without بادئات الملفات (راجع أمثلة التالية) إلى Dockerfile في مصدر التطبيق المتوفر الذي يجب استخدامه لإنشاء الصورة التي يتم دفعها بعد ذلك إلى ACR ونشرها في تطبيق الحاوية. إذا لم يتم توفيرها، فستتحقق هذه المهمة مما إذا كان هناك ملف يسمى "Dockerfile" في جذر مصدر التطبيق المتوفر واستخدامه لإنشاء الصورة. وإلا، سيتم استخدام Oryx++ Builder لإنشاء الصورة.


imageToBuild - صورة Docker لإنشاء
Person.

الاسم المخصص للصورة التي سيتم إنشاؤها، ودفعها إلى ACR ونشرها في Container App بواسطة هذه المهمة. ملاحظة: يجب أن يتضمن اسم الصورة هذا خادم ACR؛ على سبيل المثال، <acr-name>.azurecr.io/<repo>:<tag>. إذا لم يتم توفير هذه الوسيطة، إنشاء اسم صورة افتراضي في شكل <acr-name>.azurecr.io/ado-task/container-app:<build-id>.<build-number>.


imageToDeploy - صورة Docker لنشر
Person.

اسم الصورة التي تم دفعها بالفعل إلى ACR وسيتم نشرها في تطبيق الحاوية بواسطة هذه المهمة. ملاحظة: يجب أن يتضمن اسم الصورة خادم ACR؛ على سبيل المثال، <acr-name>.azurecr.io/<repo>:<tag>. إذا لم يتم توفير هذه الوسيطة، استخدام القيمة المقدمة (أو المحددة) للوسيطة 'imageToBuild'. إذا تم العثور على هذه الصورة في مثيل ACR يتطلب مصادقة للسحب، يمكن توفير الوسيطة acrName أو acrUsername والوسيطات acrPassword لمصادقة الطلبات إلى مثيل ACR.


containerAppName - اسم تطبيق حاوية Azure
Person.

اسم Azure Container App الذي سيتم إنشاؤه أو تحديثه. إذا لم يتم توفيرها، ستكون هذه القيمة في شكل ado-task-app-<build-id>-<build-number>.


resourceGroup - اسم مجموعة موارد Azure
Person.

مجموعة الموارد الموجودة التي سيتم إنشاء Azure Container App فيها (أو موجودة حاليا فيها). إذا لم يتم توفيرها، ستكون هذه القيمة في شكل <container-app-name>-rg.


بيئة Azure Container App
Person.

اسم بيئة Azure Container App لاستخدامها مع التطبيق. إذا لم يتم توفيرها، استخدام بيئة موجودة في مجموعة الموارد لتطبيق الحاوية، وإلا، سيتم إنشاء بيئة بتنسيق <container-app-name>-env.


مكدس وقت تشغيل التطبيق
Person.

مكدس إصدار النظام الأساسي المستخدم في صورة التطبيق النهائية القابلة للتشغيل التي يتم نشرها في تطبيق الحاوية. يجب توفير القيمة في التشكيل <platform>:<version>. إذا لم يتم توفيرها، يتم تحديد هذه القيمة بواسطة Oryx استنادا إلى محتويات التطبيق المقدم. يرجى الرجوع إلى هذا المستند للحصول على مزيد من المعلومات حول مكدسات وقت التشغيل المدعومة ل Oryx.


kind - نوع تطبيق الحاوية
Person.

قم بتعيين على functionapp الحصول على دعم مدمج وتعديل التكبير التلقائي لتشغيل وظائف Azure على تطبيقات Azure Container.


المنفذ الهدف للتطبيق
Person.

المنفذ الهدف الذي سيستمع إليه تطبيق الحاوية. إذا لم يتم توفيرها، ستكون هذه القيمة "80" لتطبيقات Python و"8080" لجميع الأنظمة الأساسية المدعومة الأخرى.


موقع location - تطبيق الحاوية
Person.

الموقع الذي سيتم نشر تطبيق الحاوية (والموارد الأخرى التي تم إنشاؤها) إليه.


متغيرات البيئة
Person.

قائمة بمتغير (متغيرات) البيئة للحاوية. قيم مفصولة بمسافة بتنسيق 'key=value'. سلسلة فارغة لمسح القيم الموجودة. قيمة البادئة مع 'secretref:' للإشارة إلى سر.


إعداد الدخول ingress -
Person.

الخيارات الممكنة: خارجية، داخلية، معطلة. إذا تم تعيينه على external (القيمة الافتراضية إذا لم يتم توفيرها عند إنشاء تطبيق حاوية)، فسيكون تطبيق الحاوية مرئيا من الإنترنت أو VNET، اعتمادا على نقطة نهاية بيئة التطبيق التي تم تكوينها. إذا تم تعيينه إلى internal، فسيكون تطبيق الحاوية مرئيا من داخل بيئة التطبيق فقط. إذا تم تعيينه إلى disabled، تعطيل الدخول لتطبيق الحاوية هذا ولن يكون له نقطة نهاية HTTP أو TCP.


yamlConfigPath - مسار ملف تكوين YAML
Person.

المسار الكامل (على عامل Azure Pipelines المنفذ) إلى ملف YAML الذي يفصل تكوين تطبيق الحاوية.

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

ستظل وسيطات مصدر الصورة والتطبيق (مثلappSourcePathimageToDeploy) تستخدم أولا لإنشاء و/أو دفع صورة يستخدمها تطبيق الحاوية؛ في هذه الحالة، سيحتاج ملف تكوين YAML المتوفر إلى الرجوع إلى الصورة المحددة بواسطة imageToDeploy (أو imageToBuild، اعتمادا على السيناريو الخاص بك).

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

حاليا، لا يدعم ملف YAML إعداد مصادقة الهوية المدارة لسجل الحاوية المستخدم؛ لمزيد من المعلومات حول هذه المشكلة، يرجى مراجعة هذه المشكلة في GitHub.

في الحالات التي يتم فيها توفير الوسيطة yamlConfigPath، سيتم تمرير ملف YAML إلى أمر az containerapp المقابل، إما create أو update اعتمادا على السيناريو الخاص بك. لمزيد من المعلومات حول السلوك المقصود عند توفير ملف تكوين YAML، يرجى الاطلاع على المستندات المرتبطة للأوامر المقابلة.

لمزيد من المعلومات حول بنية ملف تكوين YAML، يرجى زيارة هذا الموقع.


disableTelemetry - تعطيل بيانات تتبع الاستخدام
Person.

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


خيارات التحكم بالمهمة

تحتوي جميع المهام على خيارات التحكم بالإضافة إلى مدخلات المهام الخاصة بها. لمزيد من المعلومات، راجع خيارات التحكم وخصائص المهمة الشائعة.

متغيرات الإخراج

اي.

ملاحظات

تسمح مهمة Azure Pipelines هذه للمستخدمين بنشر مصدر التطبيق الخاص بهم بسهولة إلى Azure Container App في سير عمل Azure Pipelines الخاص بهم إما عن طريق توفير صورة تم إنشاؤها مسبقا، أو Dockerfile يمكن إنشاء صورة منه، أو استخدام منشئ لإنشاء صورة تطبيق قابلة للتشغيل للمستخدم.

تحتوي المهمة على نمطي الاستخدام التاليين.

  • دفع صورة إلى ACR - عند دفع صورة جديدة إلى ACR، يلزم إدخال acrName ومهمة appSourcePath.
  • نشر صورة تم دفعها مسبقا - عند نشر صورة تم دفعها مسبقا، يلزم إدخال مهمة imageToDeploy. إذا تم العثور على هذه الصورة في مثيل ACR يتطلب مصادقة للسحب، يمكن توفير الوسيطة acrName أو acrUsername والوسيطات acrPassword لمصادقة الطلبات إلى مثيل ACR.

ملاحظه

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

إذا لم يتم العثور على Dockerfile أو توفيره في مصدر التطبيق المتوفر، يتم تنفيذ الخطوات التالية بواسطة هذه المهمة:

  • يستخدم Oryx++ Builder لإنشاء مصدر التطبيق باستخدام Oryx لإنتاج صورة تطبيق قابلة للتشغيل
  • يدفع صورة التطبيق القابلة للتشغيل هذه إلى Azure Container Registry المتوفر
  • إنشاء تطبيق حاوية أو تحديثه استنادا إلى هذه الصورة

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

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

تشغيل هذه المهمة على العوامل المستضافة من Microsoft

إذا كنت تقوم بتشغيل هذه المهمة على عامل مستضاف من Microsoft، فقد تجد أن هذه المهمة غير قادرة على التشغيل بنجاح مع أنظمة التشغيل التالية:

  • macOS
    • لا يتم تثبيت مشغلات macOS التي تقدمها Microsoft مع Docker (مزيد من المعلومات هنا)؛ نتيجة لذلك، هذه المهمة غير قادرة على تشغيل أي أوامر docker، مثل دفع صور التطبيق القابلة للتشغيل المضمنة إلى ACR.
  • نوافذ
    • يأتي مشغلو Windows المقدمة من Microsoft مثبتا عليه Docker، ولكن بشكل افتراضي، لا يمكن سحب الصور المستندة إلى Linux؛ ونتيجة لذلك، هذه المهمة غير قادرة على سحب منشئ Oryx لإنشاء صور تطبيق قابلة للتشغيل من مصدر التطبيق المقدم.

يرجى الاطلاع على قسم المتطلبات الأساسية Docker أدناه للحصول على مزيد من المعلومات.

إشعار تجميع البيانات/بيانات تتبع الاستخدام

بشكل افتراضي، تجمع مهمة Azure DevOps هذه الأجزاء التالية من البيانات ل Microsoft:

  • سيناريو إنشاء تطبيق الحاوية ونشره الذي يستهدفه المستخدم
    • أيأو استخدم Oryx++ Builder أو استخدم Dockerfile متوفر/تم العثور عليه أو قدم صورة تم إنشاؤها مسبقا
    • ملاحظة: لا يتم جمع اسم الصورة
  • وقت معالجة المهمة بالمللي ثانية
  • نتيجة المهمة
    • أيأو نجحت أو فشلت
  • إذا تم استخدام Oryx++ Builder، فإن الأحداث والمقاييس المتعلقة بإنشاء التطبيق المقدم باستخدام Oryx

إذا كنت تريد تعطيل جمع البيانات، فيرجى تعيين الوسيطة disableTelemetry إلى true.

المتطلبات المسبقه

قبل تشغيل هذه المهمة، تكون موارد Azure واتصال خدمة Azure DevOps مطلوبة أو اختيارية اعتمادا على الوسيطات المقدمة لهذه المهمة.

اتصال خدمة Azure DevOps

للنشر إلى Azure، يجب ربط اشتراك Azure ب Team Foundation Server أو ب Azure Pipelines باستخدام علامة التبويب Services في قسم الإعدادات. أضف اشتراك Azure لاستخدامه في تعريف Build أو Release Management عن طريق فتح شاشة إدارة الحساب (أيقونة الترس في الجزء العلوي الأيسر من الشاشة) ثم انقر فوق علامة التبويب Services.

إنشاء نقطة نهاية خدمة ARM واستخدام نوع نقطة النهاية "Azure Resource Manager"؛ لمزيد من المعلومات حول إنشاء اتصالات الخدمة، يرجى اتباع هذا المستند.

Azure CLI

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

Docker

تتطلب هذه المهمة تثبيت Docker على عامل Azure Pipelines لدفع الصور إلى Azure Container Registry المتوفر. لمزيد من المعلومات حول كيفية تثبيت Docker على العامل، يرجى الاطلاع على هذا المستند.

بالإضافة إلى ذلك، قد يواجه المستخدمون الذين يقومون بتشغيل هذه المهمة باستخدام عامل Windows مشكلة في عدم القدرة على سحب الصور المستندة إلى Linux؛ لحل هذه المشكلة، حدد موقع ملف DockerCli.exe على عاملك (عادة في مجلد Program Files\Docker\Docker) وقم بتشغيل

& `.\DockerCli.exe` -SwitchDaemon

إذا لم يتم تثبيت Docker على العامل الذي يقوم بتشغيل هذه المهمة، فلا يزال يتم تمكين السيناريو (السيناريوهات) التالي:

  • توفير صورة تم إنشاؤها مسبقا إلى الوسيطة التي ينشرها تطبيق الحاوية

إذا كان Docker على العامل، ولكنه غير قادر على العمل مع الصور المستندة إلى Linux، فلا يزال يتم تمكين السيناريو (السيناريوهات) التالي:

  • توفير صورة تم إنشاؤها مسبقا إلى الوسيطة التي ينشرها تطبيق الحاوية
  • توفير Dockerfile كجزء من مصدر التطبيق الخاص بك الذي سيتم إنشاؤه ونشره باستخدام تطبيق الحاوية
    • ملاحظة: لا يمكن أن تحتوي Dockerfile على أي طبقات صور مستندة إلى Linux

حزمة CLI

يتم الاحتفاظ حزمة CLI بواسطة مشروع Cloud Native Buildpacks ويتم استخدامه من قبل هذه المهمة لإنشاء صور تطبيق قابلة للتشغيل للمستخدم عند توفير التعليمات البرمجية المصدر للتطبيق ولم يتم توفير Dockerfile إضافي أو العثور عليه. تم إنشاء منشئ بواسطة Oryx لأخذ التعليمات البرمجية المصدر للتطبيق المقدمة لهذه المهمة وإنتاج صورة يمكن دفعها بعد ذلك إلى سجل صور واستخدامها داخل تطبيق حاوية لإنشاء التطبيق وتشغيله.

يتم تثبيت إصدار ثابت من حزمة CLI على عامل Azure Pipelines الذي ينفذ المهمة، واعتمادا على نظام التشغيل الأساسي لهذا العامل، ستكون هناك أدوات مختلفة للاستفادة منها للمساعدة في التثبيت:

  • على مشغلات Windows:
    • يتم تنفيذ مجموعة من أوامر PowerShell للقيام بما يلي:
      • إنشاء مجلد pack في المجلد المؤقت للعامل، إذا لم يكن مجلد pack موجودا بالفعل
      • تنزيل حزمة CLI .zip في هذا المجلد pack
      • فك ضغط المحتوى من هذا .zip ووضعه في مجلد pack
      • حذف .zip
  • على المشغلات التي لا تعمل بنظام التشغيل Windows:
    • سيتم استخدام curl لسحب .tgz التي تحتوي على pack قابل للتنفيذ
    • سيتم استخدام tar لفك ضغط .tgz ووضع pack قابل للتنفيذ في /usr/local/bin

Azure Container Registry

يجب أن يكون Azure Container Registry موجودا يمكن للمستخدم دفع صور الحاوية إليه. ستستفيد هذه المهمة من Azure Container Registry إما لدفع صورة تطبيق قابلة للتشغيل مضمنة إلى و/أو نشر تطبيق حاوية منه.

اسم Azure Container Registry مطلوب عبر الوسيطة acrName.

يمكن للمستخدم أيضا توفير قيم acrUsername والوسيطات acrPassword التي ستقوم بمصادقة الاستدعاءات إلى مثيل Azure Container Registry؛ إذا لم يتم توفيره، إنشاء رمز مميز للوصول عبر Azure CLI الذي سيقوم بمصادقة المكالمات بدلا من ذلك.

بيئة Azure Container App

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

امثله

توضح الأمثلة التالية كيفية استخدام AzureContainerApps في سيناريوهات مختلفة.

الحد الأدنى - إنشاء صورة تطبيق لتطبيق الحاوية

steps:
- task: AzureContainerApps@1
  displayName: Build and deploy Container App
  inputs:
    connectedServiceNameARM: 'azure-subscription-service-connection'
    appSourcePath: '$(System.DefaultWorkingDirectory)'
    acrName: 'mytestacr'

سيؤدي هذا إلى إنشاء تطبيق حاوية جديد يسمى ado-task-app-<build-id>-<build-number> في مجموعة موارد جديدة تسمى <container-app-name>-rg. سيستند تطبيق الحاوية إلى صورة تم إنشاؤها من appSourcePath المقدمة ودفعها إلى مثيل ACR المتوفر. سيتم إنشاء رمز مميز للوصول لمصادقة الدفع إلى مثيل ACR المتوفر.

الحد الأدنى - استخدام الصورة المنشورة مسبقا لتطبيق الحاوية

steps:
- task: AzureContainerApps@1
  displayName: Build and deploy Container App
  inputs:
    connectedServiceNameARM: 'azure-subscription-service-connection'
    imageToDeploy: mcr.microsoft.com/<existing-image>:latest

سيؤدي ذلك إلى إنشاء تطبيق حاوية جديد يسمى ado-task-app-<build-id>-<build-number> في مجموعة موارد جديدة تسمى <container-app-name>-rg حيث لم يتم إنشاء صورة جديدة، ولكن سيتم استخدام صورة موجودة تسمى mcr.microsoft.com/<existing-image>:latest لتطبيق الحاوية.

الحد الأدنى - استخدام ملف تكوين YAML مع صورة منشورة مسبقا لتطبيق الحاوية

steps:
- task: AzureContainerApps@1
  displayName: Build and deploy Container App
  inputs:
    yamlConfigPath: simple-image-container-app.yaml

سيؤدي ذلك إلى إنشاء تطبيق حاوية جديد يسمى ado-task-app-<build-id>-<build-number> في مجموعة موارد جديدة تسمى <container-app-name>-rg حيث لم يتم إنشاء صورة جديدة، ولكن سيتم استخدام صورة موجودة تسمى mcr.microsoft.com/<existing-image>:latest لتطبيق الحاوية. سيتم سحب خصائص إضافية حول تطبيق الحاوية من ملف simple-image-container-app.yaml وستتجاوز أي قيم إضافية تم توفيرها للمهمة كوسيطات باستثناء resourceGroup.

يحتوي ملف simple-image-container-app.yaml على البنية التالية:

properties:
  managedEnvironmentId: /subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.App/managedEnvironments/CONTAINER_APP_ENVIRONMENT
  configuration:
    ingress:
      external: true
      allowInsecure: false
      targetPort: 80
  template:
    containers:
      - image: mcr.microsoft.com/<existing-image>:latest
        name: mysampleimagecontainer

يجب تحديث قيم SUBSCRIPTION_IDRESOURCE_GROUPCONTAINER_APP_ENVIRONMENT للإشارة إلى معرف المورد الكامل بيئة تطبيق حاوية الموجودة التي سيستخدمها تطبيق الحاوية.

استخدام بيانات اعتماد ACR للمصادقة

steps:
- task: AzureContainerApps@1
  displayName: Build and deploy Container App
  inputs:
    connectedServiceNameARM: 'azure-subscription-service-connection'
    appSourcePath: '$(System.DefaultWorkingDirectory)'
    acrName: 'mytestacr'
    acrUsername: $(ACR_USERNAME_SECRET)
    acrPassword: $(ACR_PASSWORD_SECRET)

سيؤدي هذا إلى إنشاء تطبيق حاوية جديد يسمى ado-task-app-<build-id>-<build-number> في مجموعة موارد جديدة تسمى <container-app-name>-rg. سيستند تطبيق الحاوية إلى صورة تم إنشاؤها من appSourcePath المقدمة ودفعها إلى مثيل ACR المتوفر. سيتم استخدام بيانات اعتماد ACR المتوفرة لمصادقة المكالمات إلى مثيل ACR.

اسم تطبيق الحاوية المقدم

steps:
- task: AzureContainerApps@1
  displayName: Build and deploy Container App
  inputs:
    connectedServiceNameARM: 'azure-subscription-service-connection'
    appSourcePath: '$(System.DefaultWorkingDirectory)'
    acrName: 'mytestacr'
    containerAppName: 'my-test-container-app'

سيؤدي ذلك إلى إنشاء تطبيق حاوية جديد يسمى my-test-container-app في اسم مجموعة موارد جديد my-test-container-app-rg.

مجموعة الموارد المتوفرة

steps:
- task: AzureContainerApps@1
  displayName: Build and deploy Container App
  inputs:
    connectedServiceNameARM: 'azure-subscription-service-connection'
    appSourcePath: '$(System.DefaultWorkingDirectory)'
    acrName: 'mytestacr'
    resourceGroup: 'my-test-rg'

سيؤدي هذا إلى إنشاء تطبيق حاوية جديد يسمى ado-task-app-<build-id>-<build-number> في مجموعة موارد تسمى my-test-rg. إذا لم تكن مجموعة موارد my-test-rg موجودة، إنشاؤها كجزء من هذه المهمة.

اسم تطبيق الحاوية ومجموعة الموارد المقدمة

steps:
- task: AzureContainerApps@1
  displayName: Build and deploy Container App
  inputs:
    connectedServiceNameARM: 'azure-subscription-service-connection'
    appSourcePath: '$(System.DefaultWorkingDirectory)'
    acrName: 'mytestacr'
    containerAppName: 'my-test-container-app'
    resourceGroup: 'my-test-rg'

سيؤدي هذا إلى إنشاء تطبيق حاوية جديد يسمى my-test-container-app في مجموعة موارد تسمى my-test-rg. إذا لم تكن مجموعة موارد my-test-rg موجودة، إنشاؤها كجزء من هذه المهمة.

بيئة تطبيق الحاوية المتوفرة

steps:
- task: AzureContainerApps@1
  displayName: Build and deploy Container App
  inputs:
    connectedServiceNameARM: 'azure-subscription-service-connection'
    appSourcePath: '$(System.DefaultWorkingDirectory)'
    acrName: 'mytestacr'
    containerAppEnvironment: 'my-test-container-app-env'

سيؤدي ذلك إلى إنشاء تطبيق حاوية جديد يسمى ado-task-app-<build-id>-<build-number> في مجموعة موارد جديدة تسمى <container-app-name>-rg مع بيئة Container App جديدة تسمى my-test-container-app-env.

مكدس وقت التشغيل المتوفر

steps:
- task: AzureContainerApps@1
  displayName: Build and deploy Container App
  inputs:
    connectedServiceNameARM: 'azure-subscription-service-connection'
    appSourcePath: '$(System.DefaultWorkingDirectory)'
    acrName: 'mytestacr'
    runtimeStack: 'dotnetcore:7.0'

سيؤدي ذلك إلى إنشاء تطبيق حاوية جديد يسمى ado-task-app-<build-id>-<build-number> في مجموعة موارد جديدة تسمى <container-app-name>-rg حيث تستخدم صورة التطبيق القابلة للتشغيل مكدس وقت التشغيل .NET 7.

تم توفير Dockerfile

steps:
- task: AzureContainerApps@1
  displayName: Build and deploy Container App
  inputs:
    connectedServiceNameARM: 'azure-subscription-service-connection'
    appSourcePath: '$(System.DefaultWorkingDirectory)'
    acrName: 'mytestacr'
    dockerfilePath: 'test.Dockerfile'

سيؤدي ذلك إلى إنشاء تطبيق حاوية جديد يسمى ado-task-app-<build-id>-<build-number> في مجموعة موارد جديدة تسمى <container-app-name>-rg حيث تم إنشاء صورة التطبيق القابلة للتشغيل من ملف test.Dockerfile الموجود في دليل مسار مصدر التطبيق المتوفر.

ملاحظة: للقيم المقدمة إلى dockerfilePath، يجب عدم تضمين بادئات الملفات (على سبيل المثال، يجب تمرير ./test.Dockerfile على أنها test.Dockerfileفقط ). سيتم تسلسل الوسيطات appSourcePathdockerfilePath المتوفرة داخل المهمة.

تم توفير صورة للبناء

steps:
- task: AzureContainerApps@1
  displayName: Build and deploy Container App
  inputs:
    connectedServiceNameARM: 'azure-subscription-service-connection'
    appSourcePath: '$(System.DefaultWorkingDirectory)'
    acrName: 'mytestacr'
    imageToBuild: 'mytestacr.azurecr.io/app:latest'

سيؤدي ذلك إلى إنشاء تطبيق حاوية جديد يسمى ado-task-app-<build-id>-<build-number> في مجموعة موارد جديدة تسمى <container-app-name>-rg حيث تسمى الصورة التي تم إنشاؤها ودفعها إلى ACR mytestacr.azurecr.io/app:latest.

المتطلبات

احتياج وصف
أنواع البنية الأساسية لبرنامج ربط العمليات التجارية YAML، الإصدار الكلاسيكي، الإصدار الكلاسيكي
يعمل على العامل، DeploymentGroup
متطلبات اي
قدرات لا تفي هذه المهمة بأي طلبات للمهام اللاحقة في الوظيفة.
قيود الأمر أي
متغيرات Settable أي
إصدار العامل 2.144.0 أو أحدث
فئة المهمة نشر

راجع أيضا