إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يوضح لك هذا التشغيل السريع كيفية مركزية إعدادات تطبيق Azure Functions وإدارتها خارج التعليمات البرمجية باستخدام Azure App Configuration. مع تكامل موفر تكوين .NET، يمكنك إضافة App Configuration كمصدر تكوين إضافي مع بعض التغييرات البسيطة في التعليمات البرمجية.
المتطلبات الأساسية
- حساب Azure مع اشتراك نشط. أنشئ حسابًا مجانًا.
- متجر App Configuration، كما هو موضح في البرنامج التعليمي لإنشاء متجر.
- Visual Studio مع أحمال عمل تطوير Azure.
- أدوات Azure Functions.
إضافة قيمة مفتاح
أضف قيمة المفتاح التالية إلى متجر App Configuration واترك Label و Content Type بقيمهما الافتراضية. لمزيد من المعلومات حول كيفية إضافة قيم المفاتيح إلى مخزن باستخدام مدخل Microsoft Azure أو CLI، انتقل إلى إنشاء قيمة مفتاح.
| مفتاح | القيمة |
|---|---|
| TestApp:الإعدادات:رسالة | البيانات من Azure App Configuration |
إنشاء تطبيق دالة
إنشاء تطبيق Azure Functions باستخدام Visual Studio عن طريق تحديد قالب Azure Functions (C#). يرشدك هذا القالب خلال تكوين الإعدادات الأساسية لمشروعك. للحصول على إرشادات مفصلة، راجع تطوير وظائف Azure باستخدام Visual Studio.
استخدم الجدول التالي كمرجع للمعلمات الرئيسية عند إنشاء تطبيق الوظائف.
| الإعداد | القيمة |
|---|---|
| عامل الوظائف | .NET 8.0 معزول |
| الدالة | مشغل HTTP |
| مستوى التخويل | مجهول |
إشعار
يمكن استخدام Azure App Configuration مع Azure Functions إما في نموذج العامل المعزول أو النموذج قيد المعالجة. يستخدم هذا التشغيل السريع نموذج العامل المعزول كمثال. يمكنك العثور على أمثلة التعليمات البرمجية الكاملة لكلا النموذجين في مستودع Azure App Configuration GitHub.
الاتصال بمخزن تكوين التطبيق
يمكنك الاتصال بمخزن App Configuration باستخدام معرف Microsoft Entra (مستحسن) أو سلسلة الاتصال.
حدد بزر الماوس الأيمن على المشروع، وحدد Manage NuGet Packages. في علامة التبويب استعراض ، ابحث عن أحدث إصدار مستقر من حزم NuGet التالية وأضفها إلى مشروعك.
- Microsoft.Azure.AppConfiguration.Functions.Worker
- Azure.Identity
افتح Program.cs وقم بتحديث التعليمات البرمجية كما يلي. يمكنك إضافة Azure App Configuration كمصدر تكوين إضافي عن طريق استدعاء
AddAzureAppConfigurationالأسلوب .يمكنك استخدام
DefaultAzureCredentialللمصادقة على متجر App Configuration. اتبع الإرشادات لتعيين بيانات الاعتماد الخاصة بك دور قارئ بيانات تكوين التطبيق. تأكد من السماح بوقت كاف للإذن للنشر قبل تشغيل التطبيق الخاص بك.using Azure.Identity; using Microsoft.Azure.Functions.Worker.Builder; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; var builder = FunctionsApplication.CreateBuilder(args); // Connect to Azure App Configuration builder.Configuration.AddAzureAppConfiguration(options => { Uri endpoint = new(Environment.GetEnvironmentVariable("AZURE_APPCONFIG_ENDPOINT") ?? throw new InvalidOperationException("The environment variable 'AZURE_APPCONFIG_ENDPOINT' is not set or is empty.")); options.Connect(endpoint, new DefaultAzureCredential()) // Load all keys that start with `TestApp:` and have no label .Select("TestApp:*"); });افتح Function1.cs، وأضف مساحة الاسم التالية.
using Microsoft.Extensions.Configuration;تحديث الدالة الإنشائية للحصول على مثيل من
IConfigurationمن خلال إدخال التبعية.private readonly IConfiguration _configuration; private readonly ILogger<Function1> _logger; public Function1(IConfiguration configuration, ILogger<Function1> logger) { _configuration = configuration; _logger = logger; }قم بتحديث
Runالطريقة لقراءة القيم من التكوين.[Function("Function1")] public IActionResult Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequest req) { _logger.LogInformation("C# HTTP trigger function processed a request."); // Read configuration data string key = "TestApp:Settings:Message"; string? message = _configuration[key]; return new OkObjectResult(message ?? $"Please create a key-value with the key '{key}' in Azure App Configuration."); }
اختبِر الدالة محليًا
تعيين متغير البيئة.
قم بتعيين متغير البيئة المسمى AZURE_APPCONFIG_ENDPOINT إلى نقطة نهاية متجر App Configuration الموجود ضمن نظرة عامة على متجرك في مدخل Microsoft Azure.
إذا كنت تستخدم موجه الأوامر Windows، فشغل الأمر التالي، ثم أعد تشغيل موجه الأوامر للسماح للتغيير بتنفيذ الأمر:
setx AZURE_APPCONFIG_ENDPOINT "<endpoint-of-your-app-configuration-store>"إذا كنت تستخدم PowerShell، فقم بتشغيل الأمر التالي:
$Env:AZURE_APPCONFIG_ENDPOINT = "<endpoint-of-your-app-configuration-store>"إذا كنت تستخدم macOS أو Linux، فقم بإجراء الأمر التالي:
export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'اضغط F5 لاختبار الدالة. إذا طُلب منك ذلك، فاقبل الطلب من Visual Studio لتنزيل وتثبيت أدوات Azure Functions Core (CLI). قد تحتاج أيضًا إلى تمكين استثناء جدار حماية حيث يتسنى للأدوات معالجة طلبات HTTP.
يُرجى نسخ عنوان URL الخاص بدالتك من إخراج وقت التشغيل في Azure Functions.
الصق عنوان URL لطلب HTTP في شريط عنوان المتصفح لديك. تظهر الصورة التالية الاستجابة في المستعرض لطلب GET المحلي الذي تم إرجاعه بواسطة الدالة.
إدارة معلمات المشغل باستخدام مراجع تكوين التطبيق
تحدد مشغلات Azure Functions كيفية استدعاء دالة. يتم تحميل سمات المشغل، مثل أسماء قوائم الانتظار أو أسماء قواعد البيانات، في وقت بدء تشغيل المضيف ولا يمكن استرداد القيم مباشرة من تكوين تطبيق Azure. لإدارة هذه المعلمات، يمكنك استخدام ميزة مرجع تكوين التطبيق المتوفرة لوظائف Azure وخدمة التطبيقات.
تسمح لك ميزة مرجع App Configuration بالإشارة إلى قيم المفاتيح المخزنة في Azure App Configuration مباشرة من إعدادات التطبيق الخاص بك. تعمل Azure Functions على حل هذه المراجع عند بدء التشغيل، ما يتيح لك إدارة معلمات المشغل مركزيا وآمنا.
على سبيل المثال، ضع في اعتبارك تطبيق دالة تم تشغيله في قائمة الانتظار. بدلا من تحديد اسم قائمة الانتظار مباشرة في سمة المشغل، يمكنك الرجوع إلى قيمة مفتاح مخزنة في Azure App Configuration.
في مخزن Azure App Configuration، أضف قيمة مفتاح لاسم قائمة الانتظار:
مفتاح القيمة TestApp:Storage:QueueName <اسم قائمة الانتظار في حساب التخزين الخاص بك> في تطبيق الوظائف، حدد الإعدادات ->متغيرات البيئة ->إعدادات التطبيق في مدخل Microsoft Azure، وأنشئ إعداد تطبيق يشير إلى مفتاح تكوين التطبيق:
الاسم القيمة MyQueueName @Microsoft.AppConfiguration(Endpoint=<your-store-endpoint>; Key=TestApp:Storage:QueueName)تلميح
إذا كان لديك قيم مفاتيح متعددة في Azure App Configuration، يمكنك تصديرها على دفعة كمراجع تكوين التطبيق إلى Azure Functions باستخدام مدخل Azure أو CLI.
تمكين الهوية المدارة لتطبيق Azure Functions وتعيين دور App Configuration Data Reader لمخزن App Configuration. للحصول على إرشادات مفصلة حول إعداد مراجع تكوين التطبيق، راجع استخدام مراجع تكوين التطبيق في App Service وAzure Functions.
تحديث الدالة التي تم تشغيلها في قائمة الانتظار لاستخدام إعداد التطبيق:
[Function("QueueTriggeredFunction")] public void Run([QueueTrigger(queueName: "%MyQueueName%")] QueueMessage message) { _logger.LogInformation($"C# Queue trigger function processed: {message.MessageText}"); }في وقت التشغيل، تحل
%MyQueueName%Azure Functions العنصر النائب إلى القيمة المخزنة في Azure App Configuration، ما يسمح لك بإدارة معلمات المشغل مركزيا دون ترميزها في التعليمات البرمجية للدالة.
تنظيف الموارد
إذا كنت لا تريد مواصلة استخدام الموارد التي تم إنشاؤها في هذه المقالة، يوصى بحذف مجموعة الموارد التي أنشأتها هنا لتجنب الرسوم.
هام
حذف مجموعة الموارد لا يمكن التراجع عنه. يتم حذف مجموعة الموارد وجميع الموارد المضمنة فيها نهائيًا. تأكد من عدم حذفك للموارد أو مجموعة المورد الخاطئة عن غير قصد. في حالة إنشاء الموارد لهذه المقالة داخل مجموعة موارد تشتمل على موارد أخرى تريد الاحتفاظ بها، احذف كل مورد على حدة من الجزء الخاص به بدلًا من حذف مجموعة الموارد.
- سجل الدخول إلى مدخل Microsoft Azure، وحدد Resource groups.
- في المربع تصفية حسب الاسم ، أدخل اسم مجموعة الموارد الخاصة بك.
- في قائمة النتائج، حدد اسم مجموعة الموارد لاستعراض نظرة عامة.
- حدد Delete resource group.
- يُطلب منك تأكيد حذف مجموعة الموارد. أدخل اسم مجموعة الموارد للتأكيد وحدد "Delete".
بعد بضع لحظات، يتم حذف مجموعة الموارد وكافة مواردها.
الخطوات التالية
في هذا التشغيل السريع، قمت بدمج Azure App Configuration مع تطبيق Azure Functions. لمعرفة كيفية تمكين تطبيق الوظائف لتحديث إعدادات التكوين ديناميكيا، تابع إلى البرنامج التعليمي التالي.
لمعرفة كيفية استخدام علامات الميزات من Azure App Configuration داخل تطبيق Azure Functions، انتقل إلى البرنامج التعليمي التالي.
لمعرفة كيفية استخدام هوية مدارة من Azure لتبسيط الوصول إلى App Configuration، تابع البرنامج التعليمي التالي.