ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
استخدم Azure Pipelines للتوزيع تلقائيًا إلى Azure Functions. يتيح لك Azure Pipelines الإنشاء والاختبار والنشر باستخدام التكامل المستمر (CI) والتسليم المستمر (CD) باستخدام Azure DevOps.
بنيات YAML الأساسية لبرنامج ربط العمليات التجارية يتم تعريفها باستخدام ملف YAML في مستودعك. الخطوة هي أصغر كتلة بناء للبنية الأساسية لبرنامج ربط العمليات التجارية ويمكن أن تكون نصا أو مهمة (برنامج نصي معبأة مسبقا). تعرف على المفاهيم والمكونات الرئيسية التي تشكل البنية الأساسية لبرنامج ربط العمليات التجارية.
ستستخدم AzureFunctionApp
المهمة للتوزيع في Azure Functions. هناك الآن إصداران من مهمة AzureFunctionApp (AzureFunctionApp@1، AzureFunctionApp@2).
AzureFunctionApp@2
يتضمن دعم التحقق المحسن الذي يجعل المسارات أقل عرضة للفشل بسبب الأخطاء.
اختر إصدار المهمة في أعلى المقالة. بنيات YAML الأساسية لبرنامج ربط العمليات التجارية لا تتوفر لـ Azure DevOps 2019 والإصدارات السابقة.
إشعار
يوصى بشدة AzureFunctionApp@2 . النشر إلى تطبيق على خطة Flex Consumption مدعوم فقط في الإصدار 2.
المتطلبات الأساسية
مؤسسة Azure DevOps إذا لم يكن لديك مثل هذا الحساب، فيمكنك إنشاء واحد مجانًا. إذا كان فريقك لديه حساب بالفعل، فتأكد من أنك أنت المسؤول عن مشروع Azure DevOps الذي تريد استخدامه.
القدرة على تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية على العوامل المستضافة من Microsoft. يمكنك إما شراء وظيفة موازية أو يمكنك طلب مستوى مجاني.
إذا كنت تخطط لاستخدام GitHub بدلا من Azure Repos، فأنت بحاجة أيضا إلى مستودع GitHub. إذا لم يكن لديك حساب GitHub، يمكنك إنشاء حساب مجانا.
تطبيق دالة موجود في Azure يحتوي على التعليمات البرمجية المصدر الخاصة به في مستودع مدعوم. إذا لم يكن لديك بعد مشروع تعليمة برمجية ل Azure Functions، يمكنك إنشاء مشروع عن طريق إكمال المقالة التالية الخاصة باللغة:
تذكر تحميل مشروع التعليمات البرمجية المحلية إلى مستودع GitHub أو Azure Repos بعد نشره إلى تطبيق الوظائف الخاص بك.
بناء تطبيقك
- سجل الدخول إلى مؤسسة Azure DevOps، وانتقل إلى مشروعك.
- في مشروعك، انتقل إلى صفحة Pipelines . ثم حدد مسار معالجة جديد.
- حدد أحد هذه الخيارات ل أين توجد التعليمات البرمجية الخاصة بك؟:
- GitHub: قد تتم إعادة توجيهك إلى GitHub لتسجيل الدخول. إذا كان الأمر كذلك، فأدخل بيانات اعتماد GitHub. عندما يكون هذا الاتصال هو أول اتصال GitHub، يرشدك المعالج أيضا خلال عملية توصيل DevOps بحسابات GitHub الخاصة بك.
- Azure Repos Git: يمكنك على الفور اختيار مستودع في مشروع DevOps الحالي.
- عند ظهور قائمة المستودعات، حدد نموذج مستودع التطبيق.
- تقوم Azure Pipelines بتحليل المستودع الخاص بك وفي تكوين البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك يوفر قائمة بالقوالب المحتملة. اختر قالب تطبيق الوظائف المناسب للغتك. إذا لم تتمكن من رؤية القالب الصحيح، فحدد إظهار المزيد.
- حدد حفظ وتشغيل، ثم حدد الالتزام مباشرة بالفرع الرئيسي، ثم اختر حفظ وتشغيل مرة أخرى.
- تم بدء تشغيل جديد. انتظر حتى تنتهي عملية التشغيل.
مثال على مسارات بناء YAML
يمكن استخدام البنيات الأساسية لبرنامج ربط العمليات التجارية المحددة اللغة التالية لإنشاء التطبيقات.
يمكنك استخدام النموذج التالي لإنشاء ملف YAML لإنشاء تطبيق .NET.
إذا رأيت أخطاء عند إنشاء تطبيقك، فتحقق من أن إصدار .NET الذي تستخدمه يطابق إصدار Azure Functions. لمزيد من المعلومات، راجع نظرة عامة على إصدارات وقت تشغيل Azure Functions.
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 App Deploy. هذه المهمة تتطلب اتصال خدمة Azure كمدخل. يخزن اتصال خدمة Azure بيانات الاعتماد للاتصال من Azure Pipelines إلى Azure.
للتوزيع إلى Azure Functions، أضف القصاصة البرمجية التالية في نهاية الملفazure-pipelines.yml
. الإعداد الافتراضي appType
هو Windows. يمكنك تحديد Linux عن طريق تعيين appType
إلى functionAppLinux
. النشر إلى تطبيق Flex Consumption غير مدعوم مع @v1 مهمة AzureFunctionApp.
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: DownloadBuildArtifacts@1 # Add this at the end of your file
inputs:
buildType: 'current'
downloadType: 'single'
artifactName: 'drop'
itemPattern: '**/*.zip'
downloadPath: '$(System.ArtifactsDirectory)'
- task: AzureFunctionApp@1
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 الخاص بك تنتج أرشيف zip في مجلد $(System.ArtifactsDirectory)
الموجود على وكيلك.
توزيع حاوية
يمكنك نشر التعليمات البرمجية تلقائيا كتطبيق دالة في حاويات بعد كل بنية ناجحة. لمعرفة المزيد حول الحاويات، راجع العمل مع الحاويات وAzure Functions.
أبسط طريقة للتوزيع إلى حاوية هي استخدام Azure Function App على مهمة Container Deploy.
للتوزيع، أضف القصاصة البرمجية التالية في نهاية ملف 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 Container Registry. تسحب مهمة Azure Function App على Container Deploy صورة Docker المناسبة المقابلة للمستودع BuildId
المحدد، ثم تنشر الصورة.
للحصول على مثال كامل للبنية الأساسية لبرنامج ربط العمليات التجارية من طرف إلى طرف، بما في ذلك إنشاء الحاوية والنشر إلى سجل الحاوية، راجع مثال نشر حاوية Azure Pipelines هذا.
التوزيع إلى فتحة
يمكنك تكوين تطبيق الوظائف لديك للحصول على فتحات متعددة. تسمح لك الفتحات بتوزيع تطبيقك بأمان واختباره قبل إتاحته لعملائك.
توضح القصاصة البرمجية 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 DevOps، وانتقل إلى مشروعك.
- في مشروعك، انتقل إلى صفحة Pipelines . ثم اختر الإجراء لإنشاء خط أنابيب جديد.
- اطلع على خطوات المعالج عن طريق تحديد 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 App Deploy v2 . هذه المهمة تتطلب اتصال خدمة Azure كمدخل. يخزن اتصال خدمة Azure بيانات الاعتماد للاتصال من Azure Pipelines إلى Azure. يجب إنشاء اتصال يستخدم اتحاد هوية حمل العمل.
يتضمن إصدار v2 من المهمة دعم مكدسات التطبيقات الأحدث ل .NET وPython والعقدة. تتضمن المهمة عمليات التحقق من النشر المسبق للشبكات. عند وجود مشكلات في النشر المسبق، يتوقف النشر.
للتوزيع إلى Azure Functions، أضف القصاصة البرمجية التالية في نهاية الملفazure-pipelines.yml
. الإعداد الافتراضي appType
هو Windows. يمكنك تحديد Linux عن طريق تعيين appType
إلى functionAppLinux
. يتطلب النشر إلى تطبيق Flex Consumption تعيين كل من appType: functionAppLinux
و isFlexConsumption: true
.
trigger:
- main
variables:
# Azure service connection established during pipeline creation
azureSubscription: <SUBSCRIPTION_NAME>
appName: <APP_NAME>
# Agent VM image name
vmImageName: 'windows-latest'
- task: AzureFunctionApp@2 # Add this at the end of your file
inputs:
azureSubscription: <AZURE_SERVICE_CONNECTION>
appType: functionApp # this specifies a Windows-based function app
appName: $(appName)
package: $(System.ArtifactsDirectory)/**/*.zip
deploymentMethod: 'auto' # 'auto' | 'zipDeploy' | 'runFromPackage'. Required. Deployment method. Default: auto.
#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>'
#slotName: '<SLOT_NAME>'
الخطوات التالية
- راجع نظرة عامة على وظائف Azure.
- راجع نظرة عامة على Azure DevOps.