النشر إلى Azure Container Apps من Azure Pipelines

تسمح لك Azure Container Apps باستخدام Azure Pipelines لنشر المراجعات إلى تطبيق الحاوية. عند دفع التثبيتات إلى مستودع Azure DevOps الخاص بك، يتم تشغيل مسار يقوم بتحديث صورة الحاوية في سجل الحاوية. تنشئ Azure Container Apps مراجعة جديدة استنادا إلى صورة الحاوية المحدثة.

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

مهمة Container Apps Azure Pipelines

تدعم المهمة السيناريوهات التالية:

  • إنشاء من Dockerfile ونشره في Container Apps
  • قم بالبناء من التعليمات البرمجية المصدر بدون Dockerfile ونشره في Container Apps. تتضمن اللغات المدعومة .NET وJava Node.js وPHP وPython
  • نشر صورة حاوية موجودة إلى Container Apps

مع إصدار الإنتاج تأتي هذه المهمة مع Azure DevOps ولم تعد تتطلب تثبيتا صريحا. للحصول على الوثائق الكاملة، راجع AzureContainerApps@1 - Azure Container Apps Deploy v1 task.

أمثلة الاستخدام

فيما يلي بعض السيناريوهات الشائعة لاستخدام المهمة. لمزيد من المعلومات، راجع وثائق المهمة.

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

توضح القصاصة البرمجية التالية كيفية إنشاء صورة حاوية من التعليمات البرمجية المصدر ونشرها في Container Apps.

steps:
- task: AzureContainerApps@1
  inputs:
    appSourcePath: '$(Build.SourcesDirectory)/src'
    azureSubscription: 'my-subscription-service-connection'
    acrName: 'myregistry'
    containerAppName: 'my-container-app'
    resourceGroup: 'my-container-app-rg'

تستخدم المهمة Dockerfile في appSourcePath لإنشاء صورة الحاوية. إذا لم يتم العثور على Dockerfile، تحاول المهمة إنشاء صورة الحاوية من التعليمات البرمجية المصدر في appSourcePath.

نشر صورة حاوية موجودة إلى Container Apps

توضح القصاصة البرمجية التالية كيفية نشر صورة حاوية موجودة إلى Container Apps. تصادق المهمة مع السجل باستخدام اتصال الخدمة. إذا لم يتم تعيين AcrPush هوية اتصال الخدمة لدور السجل، فوفر بيانات اعتماد مسؤول السجل باستخدام acrUsername معلمات الإدخال و acrPassword .

steps:
  - task: AzureContainerApps@1
    inputs:
      azureSubscription: 'my-subscription-service-connection'
      containerAppName: 'my-container-app'
      resourceGroup: 'my-container-app-rg'
      imageToDeploy: 'myregistry.azurecr.io/my-container-app:$(Build.BuildId)'

هام

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

المصادقة باستخدام Azure Container Registry

تحتاج مهمة Azure Container Apps إلى المصادقة مع Azure Container Registry لدفع صورة الحاوية. يحتاج تطبيق الحاوية أيضا إلى المصادقة مع Azure Container Registry لسحب صورة الحاوية.

لدفع الصور، تتم مصادقة المهمة تلقائيا مع سجل الحاوية المحدد في acrName استخدام اتصال الخدمة المتوفر في azureSubscription. إذا لم يتم تعيين AcrPush هوية اتصال الخدمة لدور السجل، فوفر بيانات اعتماد مسؤول السجل باستخدام acrUsername و acrPassword.

لسحب الصور، تستخدم Azure Container Apps إما الهوية المدارة (مستحسن) أو بيانات اعتماد المسؤول للمصادقة مع Azure Container Registry. لاستخدام الهوية المدارة، يجب تكوين تطبيق الحاوية الهدف للمهمة لاستخدام الهوية المدارة. للمصادقة باستخدام بيانات اعتماد مسؤول السجل، قم بتعيين المهمة acrUsername والمدخلات acrPassword .

التكوين

اتخذ الخطوات التالية لتكوين مسار Azure DevOps للنشر في Azure Container Apps.

  • إنشاء مستودع Azure DevOps لتطبيقك
  • إنشاء تطبيق حاوية مع تمكين الهوية المدارة
  • AcrPull تعيين دور Azure Container Registry إلى الهوية المدارة لتطبيق الحاوية
  • تثبيت مهمة Azure Container Apps من Azure DevOps Marketplace
  • تكوين اتصال خدمة Azure DevOps لاشتراك Azure الخاص بك
  • إنشاء مسار Azure DevOps

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

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

إنشاء مستودع Azure DevOps واستنساخ التعليمات البرمجية المصدر

قبل إنشاء البنية الأساسية لبرنامج ربط العمليات التجارية، يجب أن تكون التعليمات البرمجية المصدر لتطبيقك في مستودع.

  1. سجل الدخول إلى Azure DevOps وانتقل إلى مشروعك.

  2. افتح صفحة Repos.

  3. في شريط التنقل العلوي، حدد القائمة المنسدلة المستودعات وحدد استيراد المستودع.

  4. أدخل المعلومات التالية وحدد استيراد:

    الحقل القيمة
    نوع المستودع Git
    استنساخ عنوان URL https://github.com/Azure-Samples/containerapps-albumapi-csharp.git
    الاسم my-container-app
  5. حدد Clone لعرض عنوان URL للمستودع ونسخه.

  6. افتح محطة طرفية وقم بتشغيل الأمر التالي لاستنساخ المستودع:

    git clone <REPOSITORY_URL> my-container-app
    

    استبدل <REPOSITORY_URL> بعنوان URL الذي نسخته.

إنشاء تطبيق حاوية وتكوين الهوية المدارة

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

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

  1. قم بالتغيير إلى مجلد src للمستودع المستنسخ.

    cd my-container-app
    cd src
    
  2. إنشاء موارد Azure ونشر تطبيق حاوية باستخدام az containerapp up الأمر .

    az containerapp up \
      --name my-container-app \
      --source . \
      --ingress external 
    
  3. في إخراج الأمر، لاحظ اسم Azure Container Registry.

  4. احصل على معرف المورد الكامل لسجل الحاوية.

    az acr show --name <ACR_NAME> --query id --output tsv
    

    استبدل <ACR_NAME> باسم سجلك.

  5. تمكين الهوية المدارة لتطبيق الحاوية.

    az containerapp identity assign \
      --name my-container-app \
      --resource-group my-container-app-rg \
      --system-assigned \
      --output tsv
    

    لاحظ المعرف الأساسي للهوية المدارة في إخراج الأمر.

  6. AcrPull تعيين دور Azure Container Registry إلى الهوية المدارة لتطبيق الحاوية.

    az role assignment create \
      --assignee <MANAGED_IDENTITY_PRINCIPAL_ID> \
      --role AcrPull \
      --scope <ACR_RESOURCE_ID>
    

    استبدل <MANAGED_IDENTITY_PRINCIPAL_ID> بالمعرف الأساسي للهوية المدارة ومعرف <ACR_RESOURCE_ID> المورد الخاص ب Azure Container Registry.

  7. تكوين تطبيق الحاوية لاستخدام الهوية المدارة لسحب الصور من Azure Container Registry.

    az containerapp registry set \
      --name my-container-app \
      --resource-group my-container-app-rg \
      --server <ACR_NAME>.azurecr.io \
      --identity system
    

    استبدل <ACR_NAME> باسم Azure Container Registry.

إنشاء اتصال خدمة Azure DevOps

للنشر في Azure Container Apps، تحتاج إلى إنشاء اتصال خدمة Azure DevOps لاشتراك Azure الخاص بك.

  1. في Azure DevOps، حدد إعدادات المشروع.

  2. حدد Service connections.

  3. حدد New service connection.

  4. حدد Azure Resource Manager.

  5. حدد كيان الخدمة (تلقائي) وحدد التالي.

  6. أدخل المعلومات التالية وحدد حفظ:

    الحقل القيمة
    الاشتراك حدد اشتراك Azure الخاص بك.
    مجموعة الموارد حدد مجموعة الموارد (my-container-app-rg) التي تحتوي على تطبيق الحاوية وسجل الحاوية.
    اسم اتصال الخدمة my-subscription-service-connection

لمعرفة المزيد حول اتصالات الخدمة، راجع الاتصال إلى Microsoft Azure.

إنشاء مسار Azure DevOps YAML

  1. في مشروع Azure DevOps، حدد Pipelines.

  2. حدد New pipeline.

  3. حدد Azure Repos Git.

  4. حدد المستودع الذي يحتوي على التعليمات البرمجية المصدر (my-container-app).

  5. حدد "Starter pipeline".

  6. في المحرر، استبدل محتويات الملف ب YAML التالي:

    trigger:
      branches:
        include:
          - main
    
    pool:
      vmImage: ubuntu-latest
    
    steps:
      - task: AzureContainerApps@1
        inputs:
          appSourcePath: '$(Build.SourcesDirectory)/src'
          azureSubscription: '<AZURE_SUBSCRIPTION_SERVICE_CONNECTION>'
          acrName: '<ACR_NAME>'
          containerAppName: 'my-container-app'
          resourceGroup: 'my-container-app-rg'
    

    استبدل <AZURE_SUBSCRIPTION_SERVICE_CONNECTION> باسم اتصال خدمة Azure DevOps (my-subscription-service-connection) الذي أنشأته في الخطوة السابقة واسم <ACR_NAME> Azure Container Registry.

  7. حدد حفظ وتشغيل.

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

لنشر مراجعة جديدة لتطبيقك، ادفع تثبيتا جديدا إلى الفرع الرئيسي .