التسليم المستمر باستخدام خطوط أنابيب Azure
استخدم خطوط أنابيب Azure للنشر تلقائيا على وظائف Azure. تتيح لك Azure Pipelines الإنشاء والاختبار والنشر باستخدام التكامل المستمر (CI) والتسليم المستمر (CD) باستخدام Azure DevOps.
يتم تعريف خطوط أنابيب YAML باستخدام ملف YAML في المستودع الخاص بك. الخطوة هي أصغر لبنة إنشاء لخط أنابيب ويمكن أن تكون نصا برمجيا أو مهمة (برنامج نصي معبأ مسبقا). تعرف على المفاهيم والمكونات الأساسية التي تشكل خط أنابيب.
لا تتوفر خطوط أنابيب YAML ل Azure DevOps 2019 والإصدارات الأقدم.
المتطلبات الأساسية
حساب GitHub، حيث يمكنك إنشاء مستودع. إذا لم يكن لديك حساب، يمكنك إنشاء واحد مجاني.
A Azure DevOps organisation. إذا لم يكن لديك حساب، يمكنك إنشاء واحد مجاني. إذا كان لدى فريقك واحد بالفعل، فتأكد من أنك مسؤول مشروع Azure DevOps الذي تريد استخدامه.
القدرة على تشغيل خطوط الأنابيب على وكلاء مايكروسوفت المستضافة. يمكنك إما شراء وظيفة موازية أو يمكنك طلب طبقة مجانية.
إنشاء تطبيق الوظائف الخاص بك
هذا دليل خطوة بخطوة لاستخدام خطوط أنابيب Azure مع وظائف Azure.
إذا كان لديك بالفعل تطبيق في GitHub تريد نشره، فيمكنك محاولة إنشاء خط أنابيب لهذا الرمز.
لاستخدام نموذج التعليمات البرمجية بدلا من ذلك ، قم بتقسيم هذا GitHub الريبو:
https://github.com/microsoft/devops-project-samples/tree/master/dotnet/aspnetcore/functionApp
بناء تطبيقك
- سجل الدخول إلى مؤسسة Azure DevOps، وانتقل إلى مشروعك.
- في المشروع الخاص بك، انتقل إلى صفحة خطوط الأنابيب. ثم اختر الإجراء لإنشاء خط أنابيب جديد.
- قم بالمشي خلال خطوات المعالج عن طريق تحديد GitHub كموقع للتعليمات البرمجية المصدر.
- قد تتم إعادة توجيهك إلى GitHub لتسجيل الدخول. إذا كان الأمر كذلك، فأدخل بيانات اعتماد GitHub.
- عندما تظهر قائمة المستودعات، حدد نموذج مستودع التطبيق.
- ستقوم Azure Pipelines بتحليل مستودعك والتوصية بقالب. حدد حفظ وتشغيل، ثم حدد الالتزام مباشرة بالفرع الرئيسي، ثم اختر حفظ وتشغيل مرة أخرى.
- تم بدء تشغيل جديد. انتظر حتى تنتهي عملية التشغيل.
مثال على YAML بناء خطوط الأنابيب
يمكن استخدام خطوط الأنابيب التالية الخاصة باللغة لإنشاء التطبيقات.
يمكنك استخدام النموذج التالي لإنشاء ملف YAML لإنشاء تطبيق .NET:
pool:
vmImage: 'windows-latest'
steps:
- script: |
dotnet restore
dotnet build --configuration Release
- task: DotNetCoreCLI@2
inputs:
command: publish
arguments: '--configuration Release --output publish_output'
projects: '*.csproj'
publishWebProjects: false
modifyOutputPath: false
zipAfterPublish: false
- task: ArchiveFiles@2
displayName: "Archive files"
inputs:
rootFolderOrFile: "$(System.DefaultWorkingDirectory)/publish_output"
includeRootFolder: false
archiveFile: "$(System.DefaultWorkingDirectory)/build$(Build.BuildId).zip"
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(System.DefaultWorkingDirectory)/build$(Build.BuildId).zip'
artifactName: 'drop'
نشر تطبيقك
ستقوم بالنشر باستخدام مهمة نشر تطبيق Azure Function . تتطلب هذه المهمة اتصال خدمة Azure كمدخل. يقوم اتصال خدمة Azure بتخزين بيانات الاعتماد للاتصال من خطوط أنابيب Azure إلى Azure.
للنشر في وظائف Azure، أضف المقتطف التالي في نهاية azure-pipelines.yml الملف. الافتراضي appType هو Windows. يمكنك تحديد Linux عن طريق تعيين appType إلى functionAppLinux.
trigger:
- main
variables:
# Azure service connection established during pipeline creation
azureSubscription: <Name of your Azure subscription>
appName: <Name of the function app>
# Agent VM image name
vmImageName: 'ubuntu-latest'
- task: AzureFunctionApp@1 # Add this at the end of your file
inputs:
azureSubscription: <Azure service connection>
appType: functionAppLinux # default is functionApp
appName: $(appName)
package: $(System.ArtifactsDirectory)/**/*.zip
#Uncomment the next lines to deploy to a deployment slot
#Note that deployment slots is not supported for Linux Dynamic SKU
#deployToSlotOrASE: true
#resourceGroupName: '<Resource Group Name>'
#slotName: '<Slot name>'
يفترض المقتطف أن خطوات الإنشاء في ملف YAML تنتج الأرشيف المضغوط في المجلد الموجود على الوكيل $(System.ArtifactsDirectory) .
نشر حاوية
يمكنك نشر التعليمات البرمجية تلقائيا إلى Azure Functions كحاوية مخصصة بعد كل عملية إنشاء ناجحة. لمعرفة المزيد حول الحاويات، راجع إنشاء وظيفة على Linux باستخدام حاوية مخصصة.
النشر باستخدام تطبيق Azure Function لمهمة الحاوية
تتمثل أبسط طريقة للنشر في حاوية في استخدام تطبيق Azure Function في مهمة نشر الحاويات.
للنشر، أضف المقتطف التالي في نهاية ملف YAML:
trigger:
- main
variables:
# Container registry service connection established during pipeline creation
dockerRegistryServiceConnection: <Docker registry service connection>
imageRepository: <Name of your image repository>
containerRegistry: <Name of the Azure container registry>
dockerfilePath: '$(Build.SourcesDirectory)/Dockerfile'
tag: '$(Build.BuildId)'
# Agent VM image name
vmImageName: 'ubuntu-latest'
- task: AzureFunctionAppContainer@1 # Add this at the end of your file
inputs:
azureSubscription: '<Azure service connection>'
appName: '<Name of the function app>'
imageName: $(containerRegistry)/$(imageRepository):$(tag)
يدفع المقتطف صورة Docker إلى سجل حاويات Azure. يقوم تطبيق Azure Function على مهمة نشر الحاوية بسحب صورة Docker المناسبة المقابلة للمستودع BuildId المحدد، ثم نشر الصورة.
النشر في فتحة
يمكنك تكوين تطبيق الوظائف الخاص بك للحصول على فتحات متعددة. تسمح لك الفتحات بنشر تطبيقك بأمان واختباره قبل إتاحته لعملائك.
يوضح مقتطف YAML التالي كيفية النشر إلى فتحة مرحل، ثم التبديل إلى فتحة إنتاج:
- task: AzureFunctionApp@1
inputs:
azureSubscription: <Azure service connection>
appType: functionAppLinux
appName: <Name of the Function app>
package: $(System.ArtifactsDirectory)/**/*.zip
deployToSlotOrASE: true
resourceGroupName: <Name of the resource group>
slotName: staging
- task: AzureAppServiceManage@0
inputs:
azureSubscription: <Azure service connection>
WebAppName: <name of the Function app>
ResourceGroupName: <name of resource group>
SourceSlot: staging
SwapWithProduction: true
إنشاء خط أنابيب باستخدام Azure CLI
لإنشاء خط أنابيب إنشاء في Azure، استخدم الأمرaz functionapp devops-pipeline create. يتم إنشاء مسار البناء لإنشاء وإصدار أي تغييرات في التعليمات البرمجية يتم إجراؤها في مستودعك. ينشئ الأمر ملف YAML جديدًا يحدد مسار البناء والإصدار ثم يلتزم به في مستودعك. تعتمد المتطلبات الأساسية لهذا الأمر على تعليمتك البرمجية.
إذا كانت عليمتك البرمجية في GitHub:
يجب أن يكون لديك أذونات الكتابة لاشتراكك.
يجب أن تكون مسؤول المشروع في Azure DevOps.
يجب أن يكون لديك أذونات لإنشاء رمز وصول شخصي GitHub (PAT) لديه أذونات كافية. لمزيد من المعلومات، راجع متطلبات إذن GitHub PAT.
يجب أن يكون لديك أذونات للالتزام بالفرع الرئيسي في مستودع GitHub حتى تتمكن من تثبيت ملف YAML المُنشأ تلقائيًا.
إذا كانت تعليمتك البرمجية في مستودعات Azure:
يجب أن يكون لديك أذونات الكتابة لاشتراكك.
يجب أن تكون مسؤول المشروع في Azure DevOps.
الخطوات التالية
- راجع نظرة عامة على وظائف Azure.
- راجع نظرة عامة على Azure DevOps.



