التشغيل السريع: إنشاء دالة Go أو Rust في أزور Azure باستخدام Visual Studio Code
في هذه المقالة، يمكنك استخدام Visual Studio Code لإنشاء دالة معالج مخصص تستجيب لطلبات لغة HTTP. بعد اختبار الرمز محليًا، يمكنك نشره إلى بيئة بلا خادم من Azure Functions.
يمكن استخدام معالجات مخصصة لإنشاء دالات بأي لغة أو وقت تشغيل عن طريق تشغيل عملية خادم HTTP. تدعم هذه المقالة كل من Go وRust.
يتطلب إكمال هذا التشغيل السريع تكلفة بسيطة تبلغ بضعة سنتات أمريكية أو أقل في حساب Azure الخاص بك.
كوِّن بيئتك
قبل البدء، تأكد من استيفاء المتطلبات التالية:
حساب Azure باشتراك نشط. أنشئ حسابًا مجانيًا.
Visual Studio Code في واحدة من النظم الأساسية المدعومة.
ملحق Azure Functions للمحرر Visual Studio Code.
Azure Functions Core Tools الإصدار 3.x. استخدم الأمر
func --version للتحقق من أنه مثبت بشكل صحيح.Go، يُوصى بأحدث إصدار. استخدم الأمر
go version للتحقق من الإصدار الخاص بك.
إنشاء مشروعك المحلي
في هذا القسم، يمكن استخدام Visual Studio Code لإنشاء مشروع محلي لمعالجات مخصصة في Azure Functions. لاحقًا في هذه المقالة، ستنشر رمز دالتك إلى Azure.
اختر رمز Azure الموجود في شريط النشاط، ثم في منطقة Azure: Functions، حدد رمز إنشاء مشروع جديد... .

اختر موقع دليل لمساحة عمل مشروعك واختر تحديد.
ملاحظة
صُممت هذه الخطوات لتُستكمل خارج مساحة العمل. في هذه الحالة، لا تقم بتحديد مجلد مشروع جزء من مساحة عمل.
قدّم المعلومات التالية عند المطالبات:
حدد اللغة الخاصة بمشروع الدالة: "Select"
Custom.حدد قالبًا للدالة الأولى لمشروعك: اختر
HTTP trigger.أدخل اسم دالة:"Type"
HttpExample.مستوى السماح: "Choose"
Anonymous، بحيث يتمكن أي شخص من استدعاء نقطة النهاية للدالة. للتعرف على مستويات التخويل، راجع مفاتيح التخويل.حدد الكيفية التي ترغب في أن تفتح بها مشروعك: اختر
Add to workspace.
باستخدام هذه المعلومات، ينتج Visual Studio Code مشروع Azure Functions مع دالة مشغل HTTP. يمكنك عرض ملفات المشروع المحلي في المستكشف. لمعرفة المزيد حول الملفات التي تم إنشاؤها، راجع ملفات المشروع التي تم إنشاؤها.
إنشاء وبناء دالتك
يعلن ملف دالة function.json في ملف HttpExample عن دالة مشغل HTTP. يمكنك إكمال الدالة عن طريق إضافة معالج وتحويله برمجيًا إلى قابل للتنفيذ.
اضغط على Ctrl + N (Cmd + N على نظام التشغيل macOS) لإنشاء ملف جديد. احفظ الملف باسم handler.go في جذر تطبيق الدالة (في نفس المجلد باسم host.json).
في handler.go، أضف الرمز التالي واحفظ الملف. هذا هو معالج Go المخصص الخاص بك.
package main import ( "fmt" "log" "net/http" "os" ) func helloHandler(w http.ResponseWriter, r *http.Request) { message := "This HTTP triggered function executed successfully. Pass a name in the query string for a personalized response.\n" name := r.URL.Query().Get("name") if name != "" { message = fmt.Sprintf("Hello, %s. This HTTP triggered function executed successfully.\n", name) } fmt.Fprint(w, message) } func main() { listenAddr := ":8080" if val, ok := os.LookupEnv("FUNCTIONS_CUSTOMHANDLER_PORT"); ok { listenAddr = ":" + val } http.HandleFunc("/api/HttpExample", helloHandler) log.Printf("About to listen on %s. Go to https://127.0.0.1%s/", listenAddr, listenAddr) log.Fatal(http.ListenAndServe(listenAddr, nil)) }اضغط على Ctrl + Shift + ` أو حدد وحدة طرفية جديدة من قائمة الوحدة الطرفية لفتح وحدة طرفية متكاملة جديدة في VS Code.
قم بالتحويل البرمجي للمعالج المخصص لديك باستخدام الأمر التالي. ملف قابل للتنفيذ اسمه
handler (handler.exe في نظام Windows) سيكون هو الإخراج في مجلد جذر تطبيق الدالة.go build handler.go
تكوين تطبيق الدالة لديك
يجب تكوين مضيف الدالة لتشغيل ثنائي المعالج المخصص لديك عند بدء تشغيله.
افتح host.json.
في القسم
customHandler.description، عيِّن قيمة defaultExecutablePath إلى handler (في نظام Windows، عيِّن القيمة إلى handler.exe).في القسم
customHandler أضف خاصية باسم enableForwardingHttpRequest وعيِّن قيمتها إلى true. بالنسبة إلى الدالات التي تتكون من مشغل HTTP فقط، يبسط هذا الإعداد البرمجة عن طريق السماح لك بالعمل مع طلب HTTP نموذجي بدلاً من حمولة طلبالمعالج المخصص.تأكد من أن القسم
customHandler يبدو مثل هذا المثال. احفظ الملف."customHandler": { "description": { "defaultExecutablePath": "handler", "workingDirectory": "", "arguments": [] }, "enableForwardingHttpRequest": true }
تم تكوين تطبيق الدالة لبدء المعالج المخصص القابل للتنفيذ.
تشغيل الدالة محليًا
يمكنك تشغيل هذا المشروع على كمبيوتر التطوير المحلي قبل النشر إلى Azure.
في الوحدة الطرفية المتكاملة، ابدأ تطبيق الدالة باستخدام Azure Functions Core Tools.
func startمع تشغيل Core Tools، انتقل إلى URL التالي لتنفيذ طلب GET، والذي يتضمن سلسلة الاستعلام
?name=Functions.http://localhost:7071/api/HttpExample?name=Functionsيتم إرجاع استجابة، والتي تبدو كما يلي في مستعرض:

يتم عرض معلومات حول الطلب في لوحة الوحدة الطرفية.

اضغط على Ctrl + C لإيقاف Core Tools.
بعد التحقق من أن الدالة تعمل بشكل صحيح على الحاسوب المحلي، حان الوقت لاستخدام Visual Studio Code لنشر المشروع مباشرة على Azure.
تسجيل الدخول إلى Azure
قبل أن تتمكن من نشر التطبيق، ينبغي تسجيل الدخول إلى Azure.
إذا لم تكن قد سجلت الدخول بالفعل، فاختر رمز Azure في شريط النشاط، ثم في منطقة Azure: وظائف، اختر تسجيل الدخول إلى Azure... . إذا لم يكن لديك حساب بالفعل، يمكنك إنشاء حساب Azure مجانًا . يمكن للطلاب إنشاء حساب Azure مجاني للطلاب .

إذا قمت بتسجيل الدخول بالفعل، فانتقل إلى القسم التالي.
عندما يطلب منك في المتصفح، اختر حساب Azure الخاص بك، ثم سجل الدخول باستخدام بيانات اعتماد حساب Azure.
بعد تسجيل الدخول بنجاح، يمكنك إغلاق نافذة المتصفح الجديد. تُعرض الاشتراكات التي تنتمي إلى حساب Azure في الشريط الجانبي.
التحويل البرمجي للمعالج المخصص لـ Azure
في هذا القسم، يمكنك نشر المشروع الخاص بك إلى Azure في تطبيق دالة تعمل بنظام Linux. في معظم الحالات، عليك إعادة التحويل البرمجي للملف الثنائي الخاص بك وضبط التكوين لمطابقة النظام الأساسي الهدف قبل نشره إلى Azure.
في الوحدة الطرفية المتكاملة، قم بالتحويل البرمجي للمعالج إلى Linux/x64. يتم إنشاء ثنائي اسمه
handler في جذر تطبيق الدالة.
نشر المشروع إلى Azure
في هذا القسم، يمكنك إنشاء تطبيق الدالة والموارد ذات الصلة في اشتراك Azure الخاص بك، ونشر الرمز الخاص بك.
هام
النشر إلى تطبيق دالة موجود يحل محل محتوى هذا التطبيق في Azure.
اختر أيقونة Azure في شريط النشاط، ثم في منطقة Azure: الدوال اختر زر...نشر على تطبيق الدالة

قدّم المعلومات التالية عند المطالبات:
حدد المجلد: اختر مجلدًا من مساحة عملك، أو ابحث عن مجلد يتضمن تطبيق دالتك. لن ترى هذا الخيار إذا كان لديك بالفعل تطبيق دالة صالح ومفتوح.
حدد خيار اشتراك: اختر الاشتراك الذي تود استخدامه. لن ترى هذا في حالة امتلاكك اشتراك واحد فقط.
Select Function App in Azure: اختر
+ Create new Function App (advanced).هام
الخيار
advanced يمكِّنك من اختيار نظام التشغيل المحدد الذي يعمل عليه تطبيق الدالة لديك في Azure وهو في هذه الحالة نظام Linux.
اكتب اسمًا فريدًا عالميًا لتطبيق الدالة:اكتب اسمًا صحيحًا في مسار URL. يتم التحقق من صحة الاسم الذي تكتبه للتأكد من أنه فريد في Azure Functions.
تحديد مكدس وقت التشغيل: اختر
Custom Handler.تحديد نظام التشغيل: اختر
Linux.تحديد خطة الاستضافة: اختر
Consumption.تحديد مجموعة الموارد: اختر
+ Create new resource group. أدخل اسمًا لمجموعة الموارد. يجب أن يكون هذا الاسم فريدًا ضمن اشتراك Azure الخاص بك. يمكنك استخدام الاسم المقترح في المطالبة.تحديد حساب التخزين: اختر
+ Create new storage account. يجب أن يكون هذا الاسم فريدًا بصفة عمومية في Azure. يمكنك استخدام الاسم المقترح في المطالبة.تحديد مورد Application Insights: اختر
+ Create Application Insights resource. يجب أن يكون هذا الاسم فريدًا بصفة عمومية في Azure. يمكنك استخدام الاسم المقترح في المطالبة.تحديد موقع للموارد الجديدة: للحصول على أداء أفضل، اختر منطقة قريبة منك. يعرض الملحق حالة الموارد الفردية أثناء إنشائها في Azure في منطقة الإعلام.
عند الانتهاء، يتم إنشاء موارد Azure التالية في الاشتراك الخاص بك:
- مجموعة الموارد، وهي حاوية منطقية للموارد ذات الصلة.
- حساب قياسي في Azure Storage: الذي يحتفظ بالحالة والمعلومات الأخرى بشأن مشروعك.
- خطة استهلاك، التي تحدد المضيف الأساسي لتطبيق الوظائف بلا خادم.
- تطبيق الدالة، الذي يوفر البيئة لتنفيذ رمز الدالة. يوفر لك تطبيق الوظيفة تجميع الوظائف كوحدة منطقية لتيسير إدارة الموارد ونشرها ومشاركتها داخل خطة المضيف ذاتها.
- مثيل Application Insights المتصل بتطبيق الدالة، الذي يتتبع استخدام الدالة لديك بلا خادم.
يُعرض إشعار بعد إنشاء تطبيق الدوال الخاص بك وتطبيق حزمة التوزيع.
حدد عرض المخرجات في هذه الإعلامات لعرض نتائج الإنشاء والنشر، بما في ذلك موارد Azure التي أنشأتها. إذا فاتك الإخطار، فحدد أيقونة الجرس في الزاوية السفلية اليسرى لرؤيته مرة أخرى.

تشغيل الوظيفة في Azure
مرة أخرى في Azure: دالات المنطقة في الشريط الجانبي، وتوسيع الاشتراك الخاص بك، تطبيق دالتك الجديدة، ودالات. انقر بزر الماوس الأيمن فوق (Windows) أو اضغط على Ctrl - (في macOS) على الدالة
HttpExampleواختر تنفيذ الدالة الآن....
في إدخال نص الطلب، ترى قيمة نص رسالة الطلب
{ "name": "Azure" }. اضغط على "Enter" لإرسال رسالة الطلب إلى الدالة الخاصة بك.عند تنفيذ الدالة في منصة خدمة Azure وإرجاع استجابة، يتم إرسال إشعار في كود Visual Studio.
تنظيف الموارد
عند المتابعة إلى الخطوة التالية وإضافة ربط قائمة انتظار تخزين Azure لدالتك، ستحتاج إلى الاحتفاظ بكل مواردك في مكانها للاستفادة مما قمت به بالفعل.
بخلاف ذلك، يمكنك استخدام الخطوات التالية لحذف تطبيق الدالة والموارد المرتبطة به لتجنب تكبد أي تكاليف إضافية.
في فيجوال ستوديو كود، اضغط F1 لفتح لوحة الأوامر. في لوحة الأوامر، قم بالبحث والتحديد
Azure Functions: Open in portal.اختر تطبيق الوظائف، واضغط على زر Enter. تفتح صفحة تطبيق الوظائف في مدخل Azure.
في علامة التبويب "Overview" ، حدد الرابط المسمى بجوار مجموعة الموارد.
في صفحة مجموعة الموارد، راجع قائمة الموارد المضمنة، وتحقق من أنها هي التي تريد حذفها.
حدد "Delete resource group" ، واتبع الإرشادات.
قد يستغرق الحذف دقيقتَين. عند الانتهاء من ذلك، يظهر إشعار لبضع ثوانٍ. يمكنك أيضا تحديد رمز الجرس في أعلى الصفحة لعرض الإشعار.
لمعرفة المزيد حول تكاليف الدوال، يُرجى الاطلاع على تقدير تكاليف خطة الاستهلاك.
