وظائف الاتصال إلى تخزين Azure باستخدام Visual Studio

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

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

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

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

قبل بدء قراءة هذه المقالة، يجب:

تنزيل إعدادات تطبيق الوظيفة

في مقالة البدء السريع السابقة قمت بإنشاء تطبيق وظيفي في Azure مع حساب التخزين المطلوب. يتم تخزين سلسلة الاتصال لهذا الحساب بشكل آمن في إعدادات التطبيق في Azure. في هذه المقالة، يمكنك كتابة رسائل إلى قائمة انتظار التخزين في نفس الحساب. للاتصال بحساب التخزين عند تشغيل الوظيفة محليًّا، عليك تنزيل إعدادات التطبيق إلى ملفlocal.settings.json.

  1. فيمستكشف الحلول، انقر بزر الماوس الأيمن فوق المشروع وحددنشر.

  2. في علامة النشر ضمن الاستضافة، وسّع النقاط الثلاث (...) وحدد إدارة إعدادات خدمة تطبيق Azure.

    عدل إعدادات التطبيق

  3. ضمن AzureWebJobsStorage، انسخ قيمة السلسلة البعيدة إلى محلي، ثم حدد موافق.

يمكن لربط التخزين، الذي يستخدم AzureWebJobsStorageإعداد الاتصال، الآن اتصل بقائمة الانتظار عند التشغيل محليًّا.

تسجيل ملحقات الربط

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

  1. من قائمة الأدواتاخترNuGet Package Manager>Package Manager Console.

  2. في وحدة التحكم، قم بتشغيل أمر Install-Package التالي لتثبيت امتدادات التخزين:

    Install-Package Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues
    

الآن، يمكنك إضافة ارتباط مخرجات التخزين إلى مشروعك.

إضافة ربط المخرجات

في أحد مشروعات C#، يتم تعريف عمليات الربط كسمات ربط على أسلوب الدالة. تعتمد التعريفات المحددة على ما إذا كان تطبيقك يعمل قيد المعالجة (مكتبة فئة C#) أو في عملية عامل معزولة.

افتح ملف المشروع HttpExample.cs وأضف الفئة التالية MultiResponse:

public class MultiResponse
{
    [QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
    public string[] Messages { get; set; }
    public HttpResponseData HttpResponse { get; set; }
}

الفئة MultiResponse تسمح لك بالكتابة إلى قائمة انتظار تخزين مسماة outqueue ورسالة نجاح HTTP. يمكن إرسال رسائل متعددة إلى قائمة الانتظار لأن السمة QueueOutput يتم تطبيقها على صفيف سلسلة.

الخاصية Connection تعين سلسلة الاتصال لحساب التخزين. في هذه الحالة، يمكنك حذف Connection لأنك تستخدم حساب التخزين الافتراضي بالفعل.

إضافة التعليمات البرمجية التي تستخدم ربط المخرجات

بعد تعريف الارتباط ، يمكنك استخدام name الارتباط للوصول إليه كسمة في توقيع الوظيفة. باستخدام ربط إخراج، لا يلزم استخدام تعليمة Azure Storage SDK البرمجية للمصادقة، أو الحصول على مرجع قائمة انتظار، أو كتابة البيانات. يعمل وقت تشغيل الدوال، وربط إخراج قائمة الانتظار على أداء تلك المهام من أجلك.

استبدال الفئة الحالية HttpExample بالتعليمات البرمجية التالية:

    [Function("HttpExample")]
    public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req,
        FunctionContext executionContext)
    {
        var logger = executionContext.GetLogger("HttpExample");
        logger.LogInformation("C# HTTP trigger function processed a request.");

        var message = "Welcome to Azure Functions!";

        var response = req.CreateResponse(HttpStatusCode.OK);
        response.Headers.Add("Content-Type", "text/plain; charset=utf-8");
        response.WriteString(message);

        // Return a response to both HTTP trigger and storage output binding.
        return new MultiResponse()
        {
            // Write a single message.
            Messages = new string[] { message },
            HttpResponse = response
        };
    }
}

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

  1. لتشغيل الدالة، اضغط على F5 في Visual Studio. قد تحتاج إلى تمكين استثناء جدار حماية حيث يتسنى للأدوات معالجة طلبات HTTP. لا تُفرض مستويات التخويل مطلقًا عند تشغيل دالة محليًا.

  2. يُرجى نسخ عنوان URL الخاص بدالتك من إخراج وقت التشغيل في Azure Functions.

    وقت التشغيل المحلي في Azure

  3. الصق عنوان URL لطلب HTTP في شريط عناوين المستعرض وقم بتشغيل الطلب. تعرض الصورة التالية الاستجابة في المتصفح لطلب GET المحلي الذي أرجعته الدالة:

    استجابة دالة المضيف المحلي في المتصفح

  4. لإيقاف تصحيح الأخطاء، اضغط على Shift+F5 في Visual Studio.

يتم إنشاء قائمة انتظار جديدة مسماة outqueue في حساب التخزين الخاص بك عن طريق وقت تشغيل الوظائف عند استخدام ربط الإخراج لأول مرة. ستستخدم مستكشف التخزين للتحقق من إنشاء قائمة الانتظار مع الرسالة الجديدة.

قم بتوصيل " مستكشف التخزين" بحساب Azure

تخطي هذا القسم إذا كنت قد قمت بالفعل بتثبيت Azure Storage Explorer وتوصيلته بحساب Azure الخاص بك.

  1. قم بتشغيل أداة مستكشف تخزين Azure، وحدد أيقونة الاتصال على اليسار، وحدد إضافة حساب.

    Screenshot of how to add an Azure account to Microsoft Azure Storage Explorer.

  2. في مربع الحوار الاتصال، اختر إضافة حساب Azure، واختر بيئة Azure، ثم حدد تسجيل الدخول....

    Screenshot of the sign-in to your Azure account window.

بعد تسجيل الدخول بنجاح إلى حسابك، سترى جميع اشتراكات Azure المقترنة بحسابك. اختر اشتراكك وحدد Open Explorer.

افحص قائمة انتظار الإخراج

  1. في Storage Explorer، قم بتوسيع عقدة Queues ، ثم حدد قائمة الانتظار المسماة outqueue.

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

    Screenshot of the queue message shown in Azure Storage Explorer.

  2. قم بتشغيل الوظيفة مرة أخرى، وأرسل طلبًا آخر، وسترى رسالة جديدة في قائمة الانتظار.

الآن، حان الوقت لإعادة نشر تطبيق الوظائف المحدث إلى Azure.

إعادة نشر التطبيق المحدث والتحقق منه

  1. في مستكشف الحلول ، انقر بزر الماوس الأيمن فوق المشروع وحدد نشر ، ثم اختر نشر لإعادة نشر المشروع إلى Azure.

  2. بعد اكتمال النشر، يمكنك مرة أخرى استخدام المستعرض لاختبار الدالة التي تم إعادة نشرها. كما كان من قبل، قم بإلحاق سلسلة الاستعلام &name=<yourname> بعنوان URL.

  3. عرض الرسالة مرة أخرى في قائمة انتظار التخزين للتحقق من أن ربط الإخراج ينشئ مرة أخرى رسالة جديدة في قائمة الانتظار.

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

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

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

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

  1. في بوابة Azure، اذهب إلى صفحة مجموعة الموارد.

    للوصول إلى تلك الصفحة من صفحة تطبيق الوظائف، حدد علامة التبويب Overview، ثم حدد الارتباط التشعبي ضمن مجموعة الموارد.

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

    للحصول على تلك الصفحة من لوحة المتابعة، حدد مجموعات الموارد، وبعدها حدد مجموعة الموارد التي استخدمتها من أجل هذا المقال.

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

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

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

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

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

بعد ذلك، يجب تمكين مراقبة نتائج تحليل التطبيق (Application Insights) لتطبيق الوظيفة الخاص بك: