ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يمكنك استخدام سير عمل GitHub Actions لتعريف سير عمل لإنشاء التعليمات البرمجية ونشرها تلقائيا إلى تطبيق الوظائف في Azure Functions.
يتم الاحتفاظ بملف YAML (.yml) الذي يحدد تكوين سير العمل في /.github/workflows/
المسار في المستودع الخاص بك. يحتوي هذا التعريف على الإجراءات والمعلمات التي تشكل سير العمل، وهو خاص بلغة تطوير وظائفك. يقوم سير عمل GitHub Actions ل Functions بتنفيذ المهام التالية، بغض النظر عن اللغة:
- إعداد البيئة.
- إنشاء مشروع التعليمات البرمجية.
- نشر الحزمة إلى تطبيق دالة في Azure.
يعالج إجراء Azure Functions التوزيع إلى تطبيق دالة موجود في Azure.
يمكنك إنشاء ملف تكوين سير عمل للتوزيع يدويا. يمكنك أيضا إنشاء الملف من مجموعة من القوالب الخاصة باللغة بإحدى الطرق التالية:
- في مدخل Microsoft Azure
- استخدام Azure CLI
- من مستودع GitHub الخاص بك
إذا كنت لا تريد إنشاء ملف YAML يدويا، فحدد أسلوبا مختلفا في أعلى المقالة.
المتطلبات الأساسية
حساب Azure مع اشتراك نشط. أنشئ حساباً مجاناً.
حساب GitHub. في حالة عدم امتلاك حساب، يمكنك التسجيل مجاناً.
تطبيق وظيفة عمل مستضاف على Azure مع التعليمات البرمجية المصدر في مستودع GitHub.
- Azure CLI، عند التطوير محليا. يمكنك أيضا استخدام Azure CLI في Azure Cloud Shell.
تعيين بيانات اعتماد النشر
نظرا لأن GitHub Actions تستخدم ملف تعريف النشر الخاص بك للوصول إلى تطبيق الوظائف أثناء النشر، فأنت بحاجة أولا إلى الحصول على ملف تعريف النشر وتخزينه بشكل آمن كسر GitHub.
هام
ملف تعريف النشر هو بيانات اعتماد قيمة تسمح بالوصول إلى موارد Azure. تأكد دائما من نقله وتخزينه بشكل آمن. في GitHub، يجب تخزين ملف تعريف النشر فقط في أسرار GitHub.
قم بتنزيل ملفك الشخصي للنشر
لتنزيل ملف تعريف النشر لتطبيق الوظائف الخاص بك:
في مدخل Microsoft Azure، حدد موقع صفحة تطبيق الوظائف، وقم بتوسيع Settings>Configuration في العمود الأيسر.
في صفحة التكوين، حدد علامة التبويب الإعدادات العامة وتأكد من تشغيل بيانات اعتماد نشر المصادقة الأساسية ل SCM. عندما يكون هذا الإعداد قيد إيقاف التشغيل، لا يمكنك استخدام ملفات تعريف النشر، لذا حدد تشغيل ثم حفظ.
ارجع إلى صفحة نظرة عامة على تطبيق الوظائف، ثم حدد الحصول على ملف تعريف النشر.
قم بحفظ محتويات الملف ونسخها.
أضف سر GitHub
في GitHub، انتقل إلى المستودع الخاص بك.
انتقل إلى الإعدادات.
حدد Secrets and variables > Actions.
حدد سر مستودع جديد.
أضف بيانات سرية جديدة بالاسم
AZURE_FUNCTIONAPP_PUBLISH_PROFILE
والقيمة المعينة إلى محتويات ملف تعريف النشر.حدد Add secret.
يمكن GitHub الآن المصادقة على تطبيق الوظائف في Azure.
إنشاء سير العمل من قالب
أفضل طريقة لإنشاء تكوين سير عمل يدويا هي البدء من القالب المدعوم رسميا.
اختر إما Windows أو Linux للتأكد من حصولك على القالب لنظام التشغيل الصحيح.
انسخ القالب الخاص باللغة من مستودع إجراءات Azure Functions باستخدام الارتباط التالي:
تحديث المعلمة
env.AZURE_FUNCTIONAPP_NAME
باسم مورد تطبيق الوظائف في Azure. قد تحتاج اختياريا إلى تحديث المعلمة التي تعين إصدار اللغة الذي يستخدمه تطبيقك، مثلDOTNET_VERSION
C#.أضف ملف YAML الجديد هذا في
/.github/workflows/
المسار في المستودع الخاص بك.
إنشاء تكوين سير العمل في المدخل
عند استخدام المدخل لتمكين إجراءات GitHub، تنشئ الدالات ملف سير عمل استنادا إلى مكدس التطبيق الخاص بك وتلتزم به في مستودع GitHub الخاص بك في الدليل الصحيح.
يحصل المدخل تلقائيا على ملف تعريف النشر الخاص بك ويضيفه إلى أسرار GitHub لمستودعك.
أثناء إنشاء تطبيق الوظائف
يمكنك البدء بسرعة باستخدام GitHub Actions من خلال علامة التبويب Deployment عند إنشاء دالة في مدخل Microsoft Azure. لإضافة سير عمل GitHub Actions عند إنشاء تطبيق وظائف جديد:
في مدخل Microsoft Azure، حدد Deployment في تدفق Create Function App.
قم بتمكين النشر المستمر إذا كنت تريد أن يقوم كل تحديث للتعليمات البرمجية بتشغيل دفع التعليمات البرمجية إلى مدخل Microsoft Azure.
أدخل مؤسسة GitHub ومستودعك وفرعك.
أكمل تكوين تطبيق الوظائف. يتضمن مستودع GitHub الآن ملف سير عمل جديدا في
/.github/workflows/
.
لتطبيق دالة موجود
لإضافة سير عمل GitHub Actions إلى تطبيق وظائف موجود:
انتقل إلى تطبيق الوظائف في مدخل Microsoft Azure وحدد Deployment Center.
بالنسبة للمصدر، حدد GitHub. إذا لم تشاهد الرسالة الافتراضية Building with GitHub Actions، فحدد Change provider اختر GitHub Actions وحدد OK.
إذا لم تكن قد أذنت بالفعل بوصول GitHub، فحدد Authorize. قم بتوفير بيانات اعتماد GitHub وحدد تسجيل الدخول. لتخويل حساب GitHub مختلف، حدد تغيير الحساب وسجل الدخول باستخدام حساب آخر.
حدد مؤسسة GitHub والمستودع والفرع. للنشر باستخدام GitHub Actions، يجب أن يكون لديك حق الوصول للكتابة إلى هذا المستودع.
في إعدادات المصادقة، اختر ما إذا كنت تريد مصادقة إجراءات GitHub باستخدام هوية معينة من قبل المستخدم أو استخدام بيانات اعتماد المصادقة الأساسية. للمصادقة الأساسية، يتم استخدام بيانات الاعتماد الحالية.
حدد معاينة الملف لمشاهدة ملف سير العمل الذي تتم إضافته إلى مستودع GitHub في
github/workflows/
.حدد حفظ لإضافة ملف سير العمل إلى المستودع الخاص بك.
إضافة تكوين سير العمل إلى المستودع الخاص بك
يمكنك استخدام az functionapp deployment github-actions add
الأمر لإنشاء ملف تكوين سير عمل من القالب الصحيح لتطبيق الوظائف. ثم يتم تخزين ملف YAML الجديد في الموقع الصحيح (/.github/workflows/
) في مستودع GitHub الذي توفره، بينما تتم إضافة ملف ملف تعريف النشر لتطبيقك إلى أسرار GitHub في نفس المستودع.
شغل هذا
az functionapp
الأمر، واستبدل القيمgithubUser/githubRepo
وMyResourceGroup
و:MyFunctionapp
az functionapp deployment github-actions add --repo "githubUser/githubRepo" -g MyResourceGroup -n MyFunctionapp --login-with-github
يستخدم هذا الأمر أسلوبا تفاعليا لاسترداد رمز مميز للوصول الشخصي لحساب GitHub الخاص بك.
في نافذة المحطة الطرفية، يجب أن ترى شيئا مثل الرسالة التالية:
Please navigate to https://github.com/login/device and enter the user code XXXX-XXXX to activate and retrieve your GitHub personal access token.
انسخ التعليمات البرمجية الفريدة
XXXX-XXXX
، واستعرض للوصول إلى https://github.com/login/device، وأدخل الرمز الذي نسخته. بعد إدخال التعليمات البرمجية الخاصة بك، يجب أن ترى شيئا مثل الرسالة التالية:Verified GitHub repo and branch Getting workflow template using runtime: java Filling workflow template with name: func-app-123, branch: main, version: 8, slot: production, build_path: . Adding publish profile to GitHub Fetching publish profile with secrets for the app 'func-app-123' Creating new workflow file: .github/workflows/master_func-app-123.yml
انتقل إلى مستودع GitHub وحدد Actions. تحقق من تشغيل سير العمل الخاص بك.
إنشاء ملف تكوين سير العمل
يمكنك إنشاء ملف تكوين سير عمل GitHub Actions من قوالب Azure Functions مباشرة من مستودع GitHub الخاص بك.
في GitHub، انتقل إلى المستودع الخاص بك.
حدد الإجراءات وسير العمل الجديد.
ابحث عن الوظائف.
في مهام سير عمل تطبيق الوظائف المعروضة التي تم تأليفها بواسطة Microsoft Azure، ابحث عن تلك التي تطابق لغة التعليمات البرمجية وحدد تكوين.
في ملف YAML الذي تم إنشاؤه حديثا، قم بتحديث المعلمة
env.AZURE_FUNCTIONAPP_NAME
باسم مورد تطبيق الوظائف في Azure. قد تحتاج اختياريا إلى تحديث المعلمة التي تعين إصدار اللغة الذي يستخدمه تطبيقك، مثلDOTNET_VERSION
C#.تحقق من حفظ ملف سير العمل الجديد في
/.github/workflows/
وحدد Commit changes....
تحديث تكوين سير عمل
إذا كنت بحاجة إلى تحديث تكوين سير عمل موجود أو تغييره لسبب ما، فما عليك سوى الانتقال إلى /.github/workflows/
الموقع في المستودع الخاص بك، وفتح ملف YAML المحدد، وإجراء أي تغييرات مطلوبة، ثم تثبيت التحديثات في المستودع.
مثال: ملف تكوين سير العمل
يستخدم مثال القالب التالي الإصدار 1 من functions-action
و publish profile
للمصادقة. يعتمد القالب على اللغة التي اخترتها ونظام التشغيل الذي يتم نشر تطبيق الوظائف عليه:
name: Deploy DotNet project to Azure Function App
on:
[push]
env:
AZURE_FUNCTIONAPP_NAME: 'your-app-name' # set this to your function app name on Azure
AZURE_FUNCTIONAPP_PACKAGE_PATH: '.' # set this to the path to your function app project, defaults to the repository root
DOTNET_VERSION: '6.0.x' # set this to the dotnet version to use (e.g. '2.1.x', '3.1.x', '5.0.x')
jobs:
build-and-deploy:
runs-on: windows-latest
environment: dev
steps:
- name: 'Checkout GitHub Action'
uses: actions/checkout@v3
- name: Setup DotNet ${{ env.DOTNET_VERSION }} Environment
uses: actions/setup-dotnet@v3
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: 'Resolve Project Dependencies Using Dotnet'
shell: pwsh
run: |
pushd './${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}'
dotnet build --configuration Release --output ./output
popd
- name: 'Run Azure Functions Action'
uses: Azure/functions-action@v1
id: fa
with:
app-name: ${{ env.AZURE_FUNCTIONAPP_NAME }}
package: '${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}/output'
publish-profile: ${{ secrets.AZURE_FUNCTIONAPP_PUBLISH_PROFILE }}
إجراء Azure Functions
يحدد إجراء Azure Functions (Azure/azure-functions
) كيفية نشر التعليمات البرمجية الخاصة بك إلى تطبيق وظائف موجود في Azure، أو إلى فتحة معينة في تطبيقك.
المعلمات
المعلمات التالية مطلوبة لجميع خطط تطبيق الوظائف:
المعلمة | الشرح |
---|---|
app-name | اسم تطبيق الوظائف الخاص بك. |
الحزمة | هذا هو الموقع الذي سيتم نشره في مشروعك. بشكل افتراضي، يتم تعيين هذه القيمة إلى . ، مما يعني أنه سيتم نشر جميع الملفات والمجلدات في مستودع GitHub. |
المعلمات التالية مطلوبة لخطة استهلاك Flex:
المعلمة | الشرح |
---|---|
سكو | قم بتعيين هذا إلى flexconsumption عند المصادقة باستخدام ملف تعريف النشر. عند استخدام بيانات اعتماد RBAC أو النشر إلى خطة استهلاك غير مرنة، يمكن للإجراء حل القيمة، لذلك لا تحتاج المعلمة إلى تضمينها. |
إنشاء عن بعد | قم بتعيين هذا إلى true لتمكين إجراء بناء من Kudu عند نشر الحزمة إلى تطبيق Flex Consumption. يتم تنفيذ بناء Oryx دائما أثناء بناء عن بعد في Flex Consumption؛ لا تقم بتعيين scm-do-build-during-deployment أو enable-oryx-build. بشكلٍ افتراضي، يتم ضبط هذه المعلمة على false . |
المعلمات التالية خاصة بخطط Consumption و Elastic Premium و App Service (Dedicated):
المعلمة | الشرح |
---|---|
scm-do-build-during-deployment | (اختياري) السماح لموقع Kudu (على سبيل المثال https://<APP_NAME>.scm.azurewebsites.net/ ) بتنفيذ عمليات ما قبل النشر، مثل الإصدارات البعيدة. يتم تعيين هذا بشكل افتراضي إلى false . قم بتعيين هذا إلى true عندما تريد التحكم في سلوكيات التوزيع باستخدام Kudu بدلا من حل التبعيات في سير عمل GitHub. لمزيد من المعلومات، راجع SCM_DO_BUILD_DURING_DEPLOYMENT الإعداد. |
تمكين-oryx-build | (اختياري) السماح لموقع Kudu بحل تبعيات المشروع باستخدام Oryx. يتم تعيين هذا بشكل افتراضي إلى false . إذا كنت ترغب في استخدام Oryx لحل تبعياتك بدلا من GitHub Workflow، فقم بتعيين كل من scm-do-build-during-deployment و enable-oryx-build إلى true . |
المعلمات الاختيارية لجميع خطط تطبيق الوظائف:
الاعتبارات
ضع الاعتبارات التالية في الاعتبار عند استخدام إجراء Azure Functions:
عند استخدام إجراءات GitHub، يتم نشر التعليمات البرمجية باستخدام نشر واحد للتطبيقات على خطة Flex Consumption ونشر zip للتطبيقات على خطط Consumption و Elastic Premium و Dedicated (App Service). الاستثناء هو استهلاك Linux، حيث يتم استخدام عنوان URL للحزمة الخارجية.
يتم تخزين بيانات الاعتماد المطلوبة من قبل GitHub للاتصال ب Azure للنشر كأسرار في مستودع GitHub الخاص بك ويتم الوصول إليها في النشر ك
secrets.<SECRET_NAME>
.أسهل طريقة لإجراءات GitHub للمصادقة مع Azure Functions للتوزيع هي باستخدام ملف تعريف نشر. يمكنك أيضا المصادقة باستخدام كيان الخدمة. لمعرفة المزيد، راجع مستودع GitHub Actions هذا.
يتم إنشاء إجراءات إعداد البيئة وتشغيل بنية من القوالب، وهي خاصة باللغة.
تستخدم
env
القوالب العناصر لتعريف الإعدادات الفريدة للبناء والنشر.