إنشاء دالتك الأولى على Azure Arc (معاينة)

في هذه البداية السريعة، يمكنك إنشاء مشروع Azure Functions ونشره في تطبيق دالة قيد العمل قيد التشغيل على مجموعة Kubernetes تم تمكين Azure Arc فيها. لمعرفة المزيد، راجع خدمة التطبيقات والوظائف وتطبيقات المنطق على Azure Arc. يدعم هذا السيناريو تطبيقات الوظائف التي تعمل على Linux فقط.

إشعار

دعم تشغيل الوظائف على مجموعة Kubernetes الممكّنة من Azure Arc قيد المعاينة حالياً.

إن نشر مشاريع الدالة PowerShell في مجموعات Kubernetes والتي تم تمكين Azure Arc فيها، غير مدعوم حاليًّا. إذا كنت بحاجة إلى نشر دالات PowerShell في مجموعات Kubernetes والتي تم تمكين Azure Arc فيها، فقم بإنشاء التطبيق الدالة الخاص بك في حاوية.

إذا كنت بحاجة إلى تخصيص الحاوية التي يتم تشغيل تطبيق الوظائف فيها، فشاهد بدلا من ذلك إنشاء أول وظائف حاوية على Azure Arc (معاينة).

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

على جهاز الكمبيوتر الشخصي الخاص بك:

تثبيت الأدوات الأساسية لوظائف Azure

تعتمد الطريقة الموصى بها لتثبيت Core Tools على نظام تشغيل كمبيوتر التطوير المحلي.

الخطوات التالية استخدام مثبت Windows (MSI) لتثبيت أدوات الأساسية v4.x. لمزيدٍ من المعلومات حول المثبتات الأخرى المستندة إلى الحزمة، راجع الملف الأساسي أدوات القراءة.

قم بتنزيل وتشغيل مثبت الأدوات الأساسية، استنادًا إلى إصدار Windows:

إذا كنت قد استخدمت مثبت Windows (MSI) مسبقا لتثبيت Core Tools على Windows، فيجب إلغاء تثبيت الإصدار القديم من إضافة إزالة البرامج قبل تثبيت أحدث إصدار.

إنشاء بيئة App Service Kubernetes

قبل البدء، يجب إنشاء بيئة App Service Kubernetes environment من أجل نظام مجموعة Azure Arc-enabled Kubernetes.

إشعار

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

إذا لم تقم بإنشاء البيئة، فتحقق مع مسؤول نظام المجموعة.

أضف ملحقات Azure CLI

قم بتشغيل بيئة Bash في Azure Cloud Shell.

نظرًا لأن أوامر CLI هذه لم تصبح بعد جزءًا من مجموعة CLI الأساسية، أضفها باستخدام الأوامر التالية:

az extension add --upgrade --yes --name customlocation
az extension remove --name appservice-kube
az extension add --upgrade --yes --name appservice-kube

إنشاء مشروع الدالة المحلية

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

  1. شغّل func initالأمر، كما يلي، لإنشاء مشروع وظائف في مجلد يسمى LocalFunctionProj مع وقت التشغيل المحدد:

    func init LocalFunctionProj --dotnet
    
  2. انتقل إلى مجلد المشروع:

    cd LocalFunctionProj
    

    يحتوي هذا المجلد على ملفات مختلفة للمشروع، بما في ذلك ملفات التهيئة المسماة local.settings.json وhost.json. بشكل افتراضي، يتم استبعاد ملف local.settings.jsمن عنصر التحكم المصدر في ملف .gitignore. هذا الاستبعاد لأن الملف يمكن أن يحتوي على أسرار التي يتم تحميلها من Azure.

  3. إضافة دالة إلى المشروع باستخدام الأمر التالي حيث --name الوسيطة هي الاسم الفريد للدالة (HttpExample) --template والوسيطة تحدد مشغل الدالة (HTTP).

    func new --name HttpExample --template "HTTP trigger" --authlevel "anonymous"
    

تشغيل الدالة محليًا

  1. شغل الدالة عن طريق بدء تشغيل مضيف وقت تشغيل دوال Azure المحلي من المجلد LocalFunctionProj.

    func start
    

    قرب نهاية الإخراج، يجب أن تظهر الأسطر التالية:

    لقطة شاشة لإخراج نافذة المحطة الطرفية عند تشغيل الدالة محليا.

    إشعار

    إذا لم يظهر HttpExample كما هو موضح أعلاه، فمن المحتمل أن تكون قد بدأت المضيف من خارج المجلد الجذر للمشروع. في هذه الحالة، استخدم Ctrl+C لإيقاف المضيف، انتقل إلى المجلد الجذر للمشروع، وتشغيل الأمر السابق مرة أخرى.

  2. انسخ عنوان URL لدالة HTTP من هذا الإخراج إلى مستعرض وألحق سلسلة ?name=<YOUR_NAME>الاستعلام ، مما يجعل عنوان URL الكامل مثل http://localhost:7071/api/HttpExample?name=Functions. يجب أن يعرض المستعرض رسالة استجابة التي تعكس قيمة سلسلة الاستعلام. تُظهر المحطة الطرفية التي بدأت فيها مشروعك أيضًا إخراج السجل أثناء تقديم الطلبات.

  3. عند الانتهاء، اضغط على Ctrl + C واكتب y لإيقاف مضيف الوظائف.

الحصول على الموقع المخصص

لكي تتمكن من إنشاء تطبيق عمل في موقع مخصص، ستحتاج إلى الحصول على معلومات عن البيئة.

الحصول على المعلومات التالية حول الموقع المخصص من مسؤول نظام المجموعة (راجع إنشاء موقع مخصص).

customLocationGroup="<resource-group-containing-custom-location>"
customLocationName="<name-of-custom-location>"

الحصول على معرف الموقع المخصص للخطوة التالية.

customLocationId=$(az customlocation show \
    --resource-group $customLocationGroup \
    --name $customLocationName \
    --query id \
    --output tsv)

إنشاء موارد Azure

قبل أن تتمكن من نشر رمز الدالة الخاص بك إلى بيئة App Service Kubernetes، تحتاج إلى إنشاء موردين آخرين:

  • حساب تخزين. بينما تنشئ هذه المقالة حساب تخزين، قد لا يكون هناك حاجة إلى حساب تخزين في بعض الحالات. لمزيد من المعلومات، راجع المجموعات الممكنة في Azure Arc في مقالة اعتبارات التخزين.
  • تطبيق دالة، والذي يوفر سياق تنفيذ رمز الدالة. يعمل تطبيق الوظيفة في بيئة خدمة التطبيقات Kubernetes والخرائط لمشروع الدالة المحلية. يتيح لك تطبيق الوظيفة تجميع الوظائف كوحدة منطقية لإدارة الموارد ونشرها ومشاركتها بشكل أسهل.

إشعار

تعمل تطبيقات الوظائف في بيئة خدمة التطبيقات Kubernetes على خطة مخصصة (خدمة التطبيق). عند إنشاء تطبيق الدالات دون وجود خطة، عندها يتم إنشاء الخطة الصحيحة لك.

إنشاء حساب تخزين

استخدم الأمر إنشاء حساب تخزين az لإنشاء حساب تخزين للأغراض العامة في مجموعة الموارد والمنطقة:

az storage account create --name <STORAGE_NAME> --location westeurope --resource-group myResourceGroup --sku Standard_LRS

إشعار

في بعض الحالات، قد لا يكون هناك حاجة إلى حساب تخزين. لمزيد من المعلومات، راجع المجموعات الممكنة في Azure Arc في مقالة اعتبارات التخزين.

في المثال السابق، استبدل <STORAGE_NAME> باسم مناسب لك وفريد في تخزين Azure. يجب أن تحتوي الأسماء على ثلاثة إلى 24 حرفا من الأرقام والأحرف الصغيرة فقط. يحدد Standard_LRS حساب للأغراض العامة، الذي هو مدعوم من قبل الدالات. --locationالقيمة هي منطقة Azure قياسية.

إنشاء تطبيق الدالة

تشغيل الأمر az functionapp إنشاء لإنشاء تطبيق دالة جديدة في البيئة.

az functionapp create --resource-group MyResourceGroup --name <APP_NAME> --custom-location <CUSTOM_LOCATION_ID> --storage-account <STORAGE_NAME> --functions-version 4 --runtime dotnet 

في هذا المثال، استبدل <CUSTOM_LOCATION_ID>معرف الموقع المخصص الذي حددته لبيئة App Service Kubernetes. في المثال السابق، استبدل <STORAGE_NAME> باسم الحساب الذي استخدمته في الخطوة السابقة، واستبدله <APP_NAME> باسم فريد عالمي يناسبك.

انشر مشروع الوظيفة في Azure

بعد إنشاء تطبيق الوظائف بنجاح في Azure، تصبح الآن جاهزا لنشر مشروع الوظائف المحلية باستخدام func azure functionapp publish الأمر .

في مجلد المشروع الجذر، قم بتشغيل هذا func azure functionapp publish الأمر:

func azure functionapp publish <APP_NAME>

في هذا المثال، استبدل <APP_NAME> باسم تطبيقك. يظهر التوزيع الناجح نتائج مشابهة للإخراج التالي (مقتطع للتبسيط):

...

Getting site publishing info...
Creating archive for current directory...
Performing remote build for functions project.

...

Deployment successful.
Remote build succeeded!
Syncing triggers...
Functions in msdocs-azurefunctions-qs:
    HttpExample - [httpTrigger]
        Invoke url: https://msdocs-azurefunctions-qs.azurewebsites.net/api/httpexample

لأنه قد يستغرق بعض الوقت لنشر كامل لإكمال على مجموعة Kubernetes والتي تم تمكين Azure Arc فيها، قد تحتاج إلى إعادة تشغيل الأمر التالي للتحقق من الوظائف المنشورة:

func azure functionapp list-functions

استدعاء الدالة في Azure

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

نسخ URL Invoke الكاملة المعروضة في نتيجة أمر النشر في شريط عناوين المتصفح، مع إرفاق معلمة الاستعلام?name=Functions. يجب أن يعرض المتصفح نتيجة مشابهة كما هو الحال عند تشغيل الدالة محلياً.

يُشغل مخرج الدالة على Azure في المتصفح

الخطوات التالية

الآن بعد أن أصبح لديك تطبيق وظيفي قيد التشغيل في حاوية بيئة Kubernetes لخدمة التطبيقات الممكّنة من Azure Arc، يمكنك توصيله بـ Azure Storage عن طريق إضافة ربط إخراج Queue Storage.