النشر إلى 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 واستنساخ التعليمات البرمجية المصدر
قبل إنشاء البنية الأساسية لبرنامج ربط العمليات التجارية، يجب أن تكون التعليمات البرمجية المصدر لتطبيقك في مستودع.
سجل الدخول إلى Azure DevOps وانتقل إلى مشروعك.
افتح صفحة Repos.
في شريط التنقل العلوي، حدد القائمة المنسدلة المستودعات وحدد استيراد المستودع.
أدخل المعلومات التالية وحدد استيراد:
الحقل القيمة نوع المستودع Git استنساخ عنوان URL https://github.com/Azure-Samples/containerapps-albumapi-csharp.git
الاسم my-container-app
حدد Clone لعرض عنوان URL للمستودع ونسخه.
افتح محطة طرفية وقم بتشغيل الأمر التالي:
git clone <REPOSITORY_URL> my-container-app
استبدل
<REPOSITORY_URL>
بعنوان URL الذي نسخته.
إنشاء تطبيق حاوية وتكوين الهوية المدارة
إنشاء تطبيق الحاوية az containerapp up
باستخدام الأمر بالخطوات التالية. ينشئ هذا الأمر موارد Azure، وينشئ صورة الحاوية، ويخزن الصورة في سجل، وينشر في تطبيق حاوية.
بعد إنشاء تطبيقك، يمكنك إضافة هوية مدارة إلى تطبيقك وتعيين الدور للهوية AcrPull
للسماح للهوية بسحب الصور من السجل.
قم بالتغيير إلى مجلد src للمستودع المستنسخ.
cd my-container-app cd src
إنشاء موارد Azure ونشر تطبيق حاوية باستخدام
az containerapp up
الأمر .az containerapp up \ --name my-container-app \ --source . \ --ingress external
في إخراج الأمر، لاحظ اسم Azure Container Registry.
احصل على معرف المورد الكامل لسجل الحاوية.
az acr show --name <ACR_NAME> --query id --output tsv
استبدل
<ACR_NAME>
باسم سجلك.تمكين الهوية المدارة لتطبيق الحاوية.
az containerapp identity assign \ --name my-container-app \ --resource-group my-container-app-rg \ --system-assigned
لاحظ المعرف الأساسي للهوية المدارة في إخراج الأمر.
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.تكوين تطبيق الحاوية لاستخدام الهوية المدارة لسحب الصور من 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 الخاص بك.
في Azure DevOps، حدد إعدادات المشروع.
حدد Service connections.
حدد New service connection.
حدد Azure Resource Manager.
حدد كيان الخدمة (تلقائي) وحدد التالي.
أدخل المعلومات التالية وحدد حفظ:
الحقل القيمة الاشتراك حدد اشتراك Azure الخاص بك. مجموعة الموارد حدد مجموعة الموارد ( my-container-app-rg
) التي تحتوي على تطبيق الحاوية وسجل الحاوية.اسم اتصال الخدمة my-subscription-service-connection
لمعرفة المزيد حول اتصالات الخدمة، راجع الاتصال ب Microsoft Azure.
إنشاء مسار Azure DevOps YAML
في مشروع Azure DevOps، حدد Pipelines.
حدد New pipeline.
حدد Azure Repos Git.
حدد المستودع الذي يحتوي على التعليمات البرمجية المصدر (
my-container-app
).حدد "Starter pipeline".
في المحرر، استبدل محتويات الملف ب 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.حدد حفظ وتشغيل.
يبدأ تشغيل Azure Pipelines في إنشاء تطبيق الحاوية ونشره. للتحقق من تقدمه، انتقل إلى Pipelines وحدد التشغيل. أثناء تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية الأولى، قد تتم مطالبتك بتخويل البنية الأساسية لبرنامج ربط العمليات التجارية لاستخدام اتصال الخدمة.
لنشر مراجعة جديدة لتطبيقك، ادفع تثبيتا جديدا إلى الفرع الرئيسي .