استخدم التسميات لتوفير قيم تكوين لكل بيئة.

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

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

لإظهار هذه الوظيفة، ستقوم بتعديل تطبيق الويب الذي تم إنشاؤه في التشغيل السريع: إنشاء تطبيق ASP.NET Core باستخدام تكوين تطبيق Azure لاستخدام إعدادات تكوين مختلفة للتطوير مقابل الإنتاج. أكمل البداية السريعة قبل المتابعة.

تحديد تسمية عند إضافة قيمة تكوين

في مدخل Azure، انتقل إلى مستكشف التكوين وابحث عن المفتاح TestApp:الإعدادات:FontColor الذي قمت بإنشائه في التشغيل السريع. حدد قائمة السياق الخاصة به، ثم حدد إضافة قيمة.

Add Value menu item

في شاشة إضافة قيمة ، أدخل قيمةحمراءوتسميةتطوير. اترك نوع المحتوى فارغا. اختر ⁧⁩تطبيق⁧⁩.

تحميل قيم التكوين بتسمية محددة

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

في القسم السابق، قمت بإنشاء قيمة تكوين مختلفة لبيئة التطوير. يمكنك استخدام HostingEnvironment.EnvironmentName المتغير لتحديد البيئة التي يعمل فيها التطبيق حاليا بشكل ديناميكي. لمعرفة المزيد، راجع استخدام بيئات متعددة في ASP.NET Core.

إضافة مرجع إلى مساحة اسم Microsoft.Extensions.Configuration.AzureAppConfiguration للوصول إلى فئتي KeyFilterوLabelFilter .

using Microsoft.Extensions.Configuration.AzureAppConfiguration;

قم بتحميل قيم التكوين باستخدام التسمية المقابلة للبيئة الحالية عن طريق تمرير اسم البيئة إلى Select الطريقة:

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        webBuilder.ConfigureAppConfiguration((hostingContext, config) =>
        {
            var settings = config.Build();
            config.AddAzureAppConfiguration(options =>
                options
                    .Connect(settings.GetConnectionString("AppConfig"))
                    // Load configuration values with no label
                    .Select(KeyFilter.Any, LabelFilter.Null)
                    // Override with any configuration values specific to current hosting env
                    .Select(KeyFilter.Any, hostingContext.HostingEnvironment.EnvironmentName)
            );
        })
        .UseStartup<Startup>());

هام

يستخدم مقتطف التعليمات البرمجية السابق أداة "الإدارة السرية" لتحميل سلسلة اتصال تكوين التطبيق. للحصول على معلومات حول تخزين سلسلة الاتصال باستخدام Secret Manager، راجع التشغيل السريع لتكوين تطبيق Azure باستخدام ASP.NET Core.

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

اختبار في بيئات مختلفة

افتح الملف ضمن launchSettings.json الدليل Properties . ابحث عن الإدخال config ضمن profiles. environmentVariables في القسم، اضبط ASPNETCORE_ENVIRONMENT المتغير على Production.

باستخدام مجموعة القيم الجديدة، قم بإنشاء التطبيق وتشغيله.

dotnet build
dotnet run

استخدم متصفح ويب للانتقال إلى http://localhost:5000. ستلاحظ أن لون الخط أسود.

Web application running with production configuration

تحديث launchSettings.json لتعيين المتغير ASPNETCORE_ENVIRONMENT إلى Development. شغّل dotnet run مرة أخرى.

ستلاحظ أن لون الخط أصبح الآن أحمر. وذلك لأن التطبيق يستخدم الآن قيمة TestApp:Settings:FontColor ذلك يحتوي على التسمية Development . تظل جميع قيم التكوين الأخرى كما هي قيم الإنتاج الخاصة بها.

Web application running with development configuration

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