بدء التشغيل السريع: إنشاء تطبيق وظائف Azure باستخدام تكوين Azure للتطبيق
في بدء التشغيل السريع هذا، يمكنك دمج خدمةAzure App Configuration service في تطبيق Azure Functions لإضفاء الطابع المركزي على التخزين وإدارة كافة إعدادات التطبيق منفصلة عن التعليمات البرمجية الخاصة بك.
المتطلبات الأساسية
- حساب Azure مع اشتراك نشط. أنشئ حسابًا مجانًا.
- متجر App Configuration. إنشاء متجر.
- Visual Studio مع أحمال عمل تطوير Azure.
- أدوات وظائف Azure، إذا لم تكن قد قمت بتثبيتها مع Visual Studio بالفعل.
إضافة قيمة مفتاح
أضف قيمة المفتاح التالية إلى متجر App Configuration واترك Label و Content Type بقيمهما الافتراضية. لمزيد من المعلومات حول كيفية إضافة قيم المفاتيح إلى مخزن باستخدام مدخل Microsoft Azure أو CLI، انتقل إلى إنشاء قيمة مفتاح.
مفتاح | القيمة |
---|---|
TestApp:Settings:Message | البيانات من Azure App Configuration |
إنشاء تطبيق Functions
ينشئ قالب مشروع Azure Functions في Visual Studio مشروع مكتبة فئة C# الذي يمكنك نشره في تطبيق دالة ما «function app» في Azure. يمكنك استخدام أحد تطبيقات الدالة لتجميع الدوال في وحدة منطقية لتيسير إدارة الموارد ونشرها وتحجيمها ومشاركتها.
من قائمة Visual Studio، حدد ملف>جديد>مشروع.
في إنشاء مشروع جديد، أدخل الدالات في مربع البحث، واختر قالب دالات Azure، ثم حدد التالي.
في Configure your new projectأدخل Project name لمشروعك، ثم حدد Create. يجب أن يكون اسم تطبيق الدالة صالحًا لمساحة الاسم في C#، لذا لا تستخدم تسطيرات سفلية أو واصلات أو أي أحرف أخرى غير أبجدية رقمية.
بالنسبة لإعدادات إنشاء تطبيق Azure Functions جديد، استخدم القيم الموضحة في الجدول التالي:
الإعداد قيمة الوصف إصدار .NET .NET 6 معزول تنشئ هذه القيمة مشروع دالة يتم تشغيله في عملية عامل معزولة. تدعم عملية العامل المعزولة إصدارا آخر غير LTS من .NET وأيضا .NET Framework. لمزيد من المعلومات، راجع نظرة عامة على إصدارات وقت تشغيل Azure Functions. قالب الدالة مشغل HTTP تنشئ هذه القيمة دالة مشغلة بواسطة طلب HTTP. حساب التخزين (AzureWebJobsStorage) محاكي التخزين يُخصص حساب تخزين أو يُنشأ عند نشر المشروع على Azure لأن تطبيق الدالة في Azure يشترط توفره. مشغل HTTP لا يستخدم سلسلة اتصال حساب Azure Storage، بينما يلزم جميع أنواع المشغلات الأخرى سلسلة اتصال صالحة لحساب Azure Storage. مستوى التخويل مجهول يمكن تشغيل الدالة المنشأة بواسطة أي عميل بدون توفير مفتاح. وإعداد التخويل هذا يسهّل من اختبار الدالة الجديدة. لمزيد من المعلومات حول المفاتيح والتخويل، راجع مفاتيح التخويل وروابط HTTP وwebhook. تأكد من تعيين مستوى التخويل إلى مجهول. إذا اخترت المستوى الافتراضي للدالة، فسيطلب منك تقديم مفتاح الدالة في طلبات الوصول إلى نقطة نهاية الدالة.
حدد Create لإنشاء مشروع الدالة ودالة مشغل HTTP.
الاتصال بمخزن تكوين التطبيق
سيستخدم هذا المشروع إدخال التبعية في وظائف .NET Azure كما يضيف تكوين Azure App كمصدر تكوين إضافي. تدعم وظائف Azure تشغيل قيد المعالجة أو عملية معزولة. اختر ما يتوافق مع متطلباتك.
حدد بزر الماوس الأيمن على المشروع، وحدد Manage NuGet Packages. في التبويب استعراضابحَث وأضِف حزم NuGet التالية إلى مشروعك.
- Microsoft.Extensions.Configuration.AzureAppConfiguration الإصدار 4.1.0 أو أحدث
- Microsoft.Azure.Functions.Extensions الإصدار 1.1.0 أو أحدث
أضف التعليمة البرمجية للاتصال بتكوين تطبيق Azure.
أضِف ملفًا جديدًا، Startup.csبالتعليمات البرمجية التالية. يحدد فئة تُسمَّى
Startup
التي تنفذ فئةFunctionsStartup
المجردة. تُستخدم سمة التجميع لتحديد اسم النوع المستخدم أثناء بدء تشغيل Azure Functions.تم
ConfigureAppConfiguration
تجاوز الطريقة وإضافة مقدم مكون Azure App كمصدر تكوين إضافي من خلال الاستدعاءAddAzureAppConfiguration()
. تمConfigure
ترك الطريقة فارغة حيث إنك لست بحاجة إلى تسجيل أي خدمات في هذه المرحلة.using System; using Microsoft.Azure.Functions.Extensions.DependencyInjection; using Microsoft.Extensions.Configuration; [assembly: FunctionsStartup(typeof(FunctionApp.Startup))] namespace FunctionApp { class Startup : FunctionsStartup { public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder) { string cs = Environment.GetEnvironmentVariable("ConnectionString"); builder.ConfigurationBuilder.AddAzureAppConfiguration(cs); } public override void Configure(IFunctionsHostBuilder builder) { } } }
افتح Function1.cs، وأضف مساحة الاسم التالية إذا لم تكن موجودة بالفعل.
using Microsoft.Extensions.Configuration;
قم بإضافة أو تحديث الدالة الإنشائية الخاصة بالمستخدم للحصول على مثيل لـ
IConfiguration
من خلال إدخال التبعية.private readonly IConfiguration _configuration; public Function1(IConfiguration configuration) { _configuration = configuration; }
قم بتحديث
Run
الطريقة لقراءة القيم من التكوين.[FunctionName("Function1")] public async Task<IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); // Read configuration data string keyName = "TestApp:Settings:Message"; string message = _configuration[keyName]; return message != null ? (ActionResult)new OkObjectResult(message) : new BadRequestObjectResult($"Please create a key-value with the key '{keyName}' in App Configuration."); }
إشعار
ينبغي ألا
Function1
تكون الفئةRun
والطريقة ثابتتين. قم بإزالةstatic
المُعدِّل إذا تم إنشاؤه تلقائيًا.
اختبِر الدالة محليًا
تعيين environment variable يُسمَّى ConnectionString، وتعيينه إلى مفتاح الوصول إلى متجر App Configuration. إذا كنت تستخدم موجه الأوامر Windows، فشغل الأمر التالي، ثم أعد تشغيل موجه الأوامر للسماح للتغيير بتنفيذ الأمر:
setx ConnectionString "connection-string-of-your-app-configuration-store"
إذا كنت تستخدم Windows PowerShell، فقم بإجراء الأمر التالي:
$Env:ConnectionString = "connection-string-of-your-app-configuration-store"
إذا كنت تستخدم macOS أو Linux، فقم بإجراء الأمر التالي:
export ConnectionString='connection-string-of-your-app-configuration-store'
اضغط F5 لاختبار الدالة. إذا طُلب منك ذلك، فاقبل الطلب من Visual Studio لتنزيل وتثبيت أدوات Azure Functions Core (CLI). قد تحتاج أيضًا إلى تمكين استثناء جدار حماية حيث يتسنى للأدوات معالجة طلبات HTTP.
يُرجى نسخ عنوان URL الخاص بدالتك من إخراج وقت التشغيل في Azure Functions.
الصق عنوان URL لطلب HTTP في شريط عنوان المتصفح لديك. تظهر الصورة التالية الاستجابة في المستعرض لطلب GET المحلي الذي تم إرجاعه بواسطة الدالة.
تنظيف الموارد
إذا كنت لا تريد مواصلة استخدام الموارد التي تم إنشاؤها في هذه المقالة، يوصى بحذف مجموعة الموارد التي أنشأتها هنا لتجنب الرسوم.
هام
حذف مجموعة الموارد لا يمكن التراجع عنه. يتم حذف مجموعة الموارد وجميع الموارد المضمنة فيها نهائيًا. تأكد من عدم حذفك للموارد أو مجموعة المورد الخاطئة عن غير قصد. في حالة إنشاء الموارد لهذه المقالة داخل مجموعة موارد تشتمل على موارد أخرى تريد الاحتفاظ بها، احذف كل مورد على حدة من الجزء الخاص به بدلًا من حذف مجموعة الموارد.
- سجل الدخول إلى مدخل Microsoft Azure، وحدد Resource groups.
- في المربع تصفية حسب الاسم ، أدخل اسم مجموعة الموارد الخاصة بك.
- في قائمة النتائج، حدد اسم مجموعة الموارد لاستعراض نظرة عامة.
- حدد Delete resource group.
- يُطلب منك تأكيد حذف مجموعة الموارد. أدخل اسم مجموعة الموارد للتأكيد وحدد "Delete".
بعد بضع لحظات، يتم حذف مجموعة الموارد وكافة مواردها.
الخطوات التالية
في قالب التشغيل السريع هذا، أنشأت متجرًا جديدًا فيApp Configuration واستخدمته مع تطبيق وحدة تحكم .NET Core عبر موفر خدمة App Configuration. لمعرفة كيفية تحديث تطبيق Azure Functions لتحديث التكوين ديناميكيًّا، تابِع البرنامج التعليمي التالي.
لمعرفة كيفية استخدام هوية Azure المدارة لتبسيط الوصول إلى تكوين التطبيق، تابع البرنامج التعليمي التالي.