التشغيل السريع: إنشاء دالة Go أو Rust في أزور Azure باستخدام Visual Studio Code

في هذه المقالة، يمكنك استخدام Visual Studio Code لإنشاء دالة معالج مخصصة تستجيب لطلبات HTTP. بعد اختبار التعليمة البرمجية محليًا، يمكنك توزيعها إلى بيئة بلا خادم من دالات Azure.

يمكن استخدام معالجات مخصصة لإنشاء دالات بأي لغة أو وقت تشغيل عن طريق تشغيل عملية خادم HTTP. تدعم هذه المقالة كلا من Go و Rust.

يتطلب إكمال هذا التشغيل السريع تكلفة صغيرة تبلغ بضعة سنتات أمريكية أو أقل في حساب Azure الخاص بك.

تكوين بيئتك

قبل البدء، تأكد من توفر المتطلبات التالية:

تثبيت الأدوات الأساسية أو تحديثها

يتكامل ملحق Azure Functions ل Visual Studio Code مع Azure Functions Core Tools بحيث يمكنك تشغيل وتصحيح وظائفك محليا في Visual Studio Code باستخدام وقت تشغيل Azure Functions. قبل البدء، من الجيد تثبيت Core Tools محليا أو تحديث تثبيت موجود لاستخدام أحدث إصدار.

في Visual Studio Code، حدد F1 لفتح لوحة الأوامر، ثم ابحث عن الأمر Azure Functions وتشغيله: تثبيت أو تحديث Core Tools.

يبدأ هذا الأمر تثبيتا مستندا إلى الحزمة لأحدث إصدار من Core Tools.

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

في هذا القسم، يمكن استخدام Visual Studio Code لإنشاء مشروع محلي لمعالجات مخصصة في Azure Functions. لاحقًا في هذه المقالة، ستنشر رمز دالتك على Azure.

  1. حدد رمز Azure في شريط "النشاط". ثم في منطقة «مساحة العمل» (محلية)، حدد الزر +، واختر "إنشاء دالة" في القائمة المنسدلة. اختر إنشاء مشروع جديد حين يُطلب منك.

    لقطة شاشة لإنشاء نافذة مشرع جديد.

  2. اختر موقع الدليل الخاص لمساحة عمل المشروع لديك واختر "تحديد". يجب عليك إما إنشاء مجلد جديد أو اختيار مجلد فارغ لمساحة عمل المشروع. لا تختر مجلد مشروع يشكل بالفعل جزءًا من مساحة عمل.

  3. قدِّم المعلومات التالية في المطالبات:

    المطالبة التحديد
    حدد اللغة الخاصة بمشروع الدالة اختر Custom Handler.
    تحديد قالب للدالة الأولى لمشروعك اختر HTTP trigger.
    توفير اسم دالة اكتبHttpExample.
    مستوى التخويل اختر Anonymous بحيث يتمكن أي شخص من استدعاء نقطة النهاية للدالة. للتعرف على مستويات التخويل، راجع مفاتيح التخويل.
    تحديد الطريقة التي تريد فتح مشروعك بها اختر Open in current window.

    باستخدام هذه المعلومات، ينشئ Visual Studio Code مشروع دالات Azure مع مشغل HTTP. يمكنك عرض ملفات المشروع المحلي في المستكشف.

إنشاء وبناء دالتك

يعلن ملف function.json في مجلد HttpExample عن دالة مشغل HTTP. يمكنك إكمال الدالة عن طريق إضافة معالج وتحويله برمجيًا إلى قابل للتنفيذ.

  1. اضغط على Ctrl + N (Cmd + N على macOS) لإنشاء ملف جديد. احفظه كمعالج.goفي جذر تطبيق الدالة (في نفس المجلد مثل host.json).

  2. في 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))
    }
    
  3. اضغط على Ctrl + Shift + ' أو حدد New Terminal من قائمة Terminal لفتح محطة طرفية متكاملة جديدة في VS Code.

  4. قم بالتحويل البرمجي للمعالج المخصص لديك باستخدام الأمر التالي. ملف قابل للتنفيذ يسمى handler (handler.exe على Windows) هو الإخراج في المجلد الجذر لتطبيق الوظائف.

    go build handler.go
    

    VS Code - بناء معالج Go مخصص

تكوين تطبيق وظيفتك

يجب تكوين مضيف الدالة لتشغيل ثنائي المعالج المخصص لديك عند بدء تشغيله.

  1. افتح host.json.

  2. في customHandler.description القسم ، قم بتعيين قيمة defaultExecutablePath إلى handler (في Windows، قم بتعيينها إلى handler.exe).

  3. في customHandler القسم ، أضف خاصية باسم enableForwardingHttpRequest واضبط قيمتها على true. بالنسبة للوظائف التي تتكون من مشغل HTTP فقط، يبسط هذا الإعداد البرمجة من خلال السماح لك بالعمل مع طلب HTTP نموذجي بدلا من حمولة طلب المعالج المخصص.

  4. تأكد من أن customHandler المقطع يبدو مثل هذا المثال. حفظ الملف.

    "customHandler": {
      "description": {
        "defaultExecutablePath": "handler",
        "workingDirectory": "",
        "arguments": []
      },
      "enableForwardingHttpRequest": true
    }
    

تم تكوين تطبيق الدالة لبدء المعالج المخصص القابل للتنفيذ.

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

يمكنك تشغيل هذا المشروع على كمبيوتر التطوير المحلي قبل النشر إلى Azure.

  1. في الوحدة الطرفية المتكاملة، ابدأ تطبيق الدالة باستخدام Azure Functions Core Tools.

    func start
    
  2. مع تشغيل Core Tools، انتقل إلى عنوان URL التالي لتنفيذ طلب GET، والذي يتضمن ?name=Functions سلسلة الاستعلام.

    http://localhost:7071/api/HttpExample?name=Functions

  3. يتم إرجاع استجابة، والتي تبدو كما يلي في مستعرض:

    مستعرض - إخراج مثال مضيف محلي

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

    بدء تشغيل مضيف المهمة - إخراج الوحدة الطرفية لـ VS Code

  5. اضغط على Ctrl + C لإيقاف Core Tools.

بعد التحقق من عمل الوظيفة بشكل صحيح على الحاسوب المحلي، حان الوقت لاستخدام تعليمة Visual Studio البرمجية لنشر المشروع مباشرة على Azure.

تسجيل الدخول إلى Azure

قبل أن تتمكن من إنشاء موارد Azure أو نشر تطبيقك، يجب عليك تسجيل الدخول إلى Azure.

  1. إذا لم تُسجل الدخول بالفعل، فاختر رمز Azure في شريط "النشاط". ثم في منطقة "الموارد"، اختر "تسجيل الدخول إلى Azure...".

    لقطة شاشة تعرض تسجيل الدخول إلى نافذة Azure في VS Code.

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

  2. اخترعند مطالبتك في مستعرض حساب Azure الخاص بك، ثم سجل الدخول باستخدام بيانات اعتماد حساب Azure. في حال إنشاء حساب جديد، يمكنك تسجيل الدخول بعد إنشاء حسابك.

  3. يمكنك بعد تسجيل الدخول بنجاح إغلاق نافذة المتصفح الجديدة. تظهر الاشتراكات التي تنتمي إلى حساب Azure الخاص بك في الشريط الجانبي.

التحويل البرمجي للمعالج المخصص لـ Azure

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

  1. في الوحدة الطرفية المتكاملة، قم بالتحويل البرمجي للمعالج إلى Linux/x64. يتم إنشاء ثنائي باسم handler في جذر تطبيق الوظائف.

    GOOS=linux GOARCH=amd64 go build handler.go
    

إنشاء تطبيق الوظائف في Azure

يمكنك، في هذا القسم، إنشاء تطبيق وظائف وموارد ذات الصلة في اشتراك Azure.

  1. حدد رمز Azure في شريط "النشاط". ثم في منطقة "الموارد"، حدد الرمز + وحدد الخيار "إنشاء تطبيق الوظائف في Azure".

    أنشئ موردًا في اشتراك Azure الخاص بك

  2. قدِّم المعلومات التالية في المطالبات:

    المطالبة التحديد
    تحديد الاشتراك حدد الاشتراك المطلوب استخدامه. لن ترى هذه عندما يكون لديك اشتراك واحد فقط مرئي ضمن الموارد.
    أدخل اسماً فريداً عالمياً لتطبيق الوظائف اكتب اسماً صالحاً في مسار URL. يتم التحقق من صحة الاسم الذي تكتبه للتأكد من أنه فريد في دالات Azure.
    تحديد مكدس ذاكرة مؤقتة لوقت التشغيل اخترCustom Handler.
    حدد موقعاً للموارد الجديدة للحصول على أداء أفضل، اختر منطقة قريبة منك.

    يعرض الملحق حالة الموارد الفردية أثناء إنشائها في Azure في لوحة سجل نشاط Azure.

    سجل إنشاء مورد Azure

  3. يتم، عند الانتهاء من الإنشاء، إنشاء موارد Azure التالية في الاشتراك. تسمى الموارد استنادًا إلى اسم تطبيق الوظائف الخاص بك:

    • مجموعة الموارد، وهي حاوية منطقية للموارد ذات الصلة.
    • حساب التخزين بخدمة Azure: هو مورد تخزين يحتفظ بالحالة ومعلومات أخرى حول المشروع.
    • تطبيق الوظيفة، الذي يوفر البيئة لتنفيذ التعليمة البرمجية للوظيفة. يتيح لك تطبيق الوظيفة تجميع الوظائف كوحدة منطقية لإدارة الموارد وتوزيعها ومشاركتها بشكل أسهل مع نفس خطة المضيف.
    • خطة «خدمة التطبيقات» التي تحدد المضيف الأساسي لتطبيق الوظائف.
    • مثيل Application Insights متصل بتطبيق الوظائف الذي يتتبع استخدام الوظائف في التطبيق.

    يعرض تنبيه بعد إنشاء تطبيق الوظيفة وتطبيق حزمة التوزيع.

    تلميح

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

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

هام

يستبدل التوزيع إلى تطبيق وظائف موجود دائمًا محتويات هذا التطبيق في Azure.

  1. في منطقة الموارد لنشاط Azure، حدد موقع مورد تطبيق الدالة الذي أنشأته للتو، وانقر بزر الماوس الأيمن فوق المورد، وحدد Deploy to function app....

  2. عند مطالبتك بالكتابة فوق عمليات التوزيع السابقة، حدد Deploy لنشر التعليمات البرمجية للدالة إلى مورد تطبيق الوظائف الجديد.

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

    لقطة شاشة تظهر نافذة View Output

تشغيل الوظيفة في Azure

  1. بالعودة إلى منطقة Resources في الشريط الجانبي قم بتوسيع الاشتراك الخاص بك، وتطبيق الوظائف الجديد وFunctions. انقر بزر الماوس الأيمن (Windows) أو Ctrl - انقر فوق الدالة (macOS) HttpExample واختر تنفيذ الدالة الآن....

    لقطة شاشة تعرض تنفيذ وظيفة في Azure من Visual Studio Code.

  2. في Enter request body سترى قيمة نص رسالة الطلب الخاصة { "name": "Azure" }. اضغط فوق Enter لإرسال رسالة الطلب هذه إلى الوظيفة الخاصة بك.

  3. عند تنفيذ الوظيفة محليًا وإرجاع استجابة، يتم طرح تنبيه في تعليمة Visual Studio البرمجية.

تنظيف الموارد

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

بخلاف ذلك، يمكنك استخدام الخطوات التالية لحذف تطبيق الدالة والموارد المرتبطة به لتجنب تكبد أي تكاليف إضافية.

  1. لفتح لوحة الأوامر في تعليمة Visual Studio البرمجية، اضغط على F1. في لوحة الأوامر، ابحث عن Azure: Open in portal واختره.

  2. اختر التطبيق الخاص بالوظائف، واضغط زر Enter. تفتح صفحة تطبيق الوظيفة في مدخل Microsoft Azure.

  3. في علامة التبويب نظرة عامة حدد الارتباط المسمى بجوار Resource group.

    لقطة شاشة تعرض تحديد مجموعة الموارد لحذفها من صفحة تطبيق الوظائف.

  4. في صفحة مجموعة الموارد، راجع قائمة الموارد المدرجة وتحقق من أنها هي التي تريد حذفها.

  5. حدد حذف مجموعة الموارد، واتبع الإرشادات.

    قد يستغرق الحذف دقيقتين. عند الانتهاء من ذلك، يظهر تنبيه لبضع ثوان. يمكنك أيضا تحديد رمز الجرس في أعلى الصفحة لعرض التنبيه.

لمعرفة المزيد حول تكاليف الوظائف، يرجى الاطلاع على تقدير تكاليف خطة الاستهلاك.

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