إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
في هذا التشغيل السريع، ستقوم بإنشاء علامة ميزة في تكوين تطبيق Azure واستخدامها للتحكم ديناميكيا في رؤية صفحة ويب جديدة في تطبيق ASP.NET Core يعمل في AKS دون إعادة تشغيله أو إعادة نشره.
المتطلبات الأساسية
اتبع المستندات لاستخدام التكوين الديناميكي في خدمة Azure Kubernetes.
- التشغيل السريع: استخدام تكوين تطبيق Azure في خدمة Azure Kubernetes
- البرنامج التعليمي: استخدام التكوين الديناميكي في خدمة Azure Kubernetes
إنشاء علامة ميزة
أضف علامة ميزة تسمى Beta إلى متجر App Configuration واترك التسميةوالوصف بقيمهما الافتراضية. لمزيد من المعلومات حول كيفية إضافة علامات الميزات إلى متجر باستخدام مدخل Microsoft Azure أو CLI، انتقل إلى إنشاء علامة ميزة.
استخدام علامة ميزة
في هذا القسم، ستستخدم علامات الميزات في تطبيق ويب بسيط ASP.NET وتشغيله في Azure Kubernetes Service (AKS).
انتقل إلى دليل المشروع الذي قمت بإنشائه في التشغيل السريع، وقم بتشغيل الأمر التالي لإضافة مرجع إلى حزمة Microsoft.FeatureManagement.AspNetCore NuGet الإصدار 3.2.0 أو إصدار أحدث.
dotnet add package Microsoft.FeatureManagement.AspNetCoreافتح program.cs، وأضف إدارة الميزات إلى مجموعة الخدمات الخاصة بتطبيقك عن طريق الاتصال
AddFeatureManagement.// Existing code in Program.cs // ... ... // Add a JSON configuration source builder.Configuration.AddJsonFile("config/mysettings.json", reloadOnChange: true, optional: false); // Add feature management to the container of services. builder.Services.AddFeatureManagement(); var app = builder.Build(); // The rest of existing code in program.cs // ... ...أضف
using Microsoft.FeatureManagement;في الجزء العلوي من الملف إذا لم يكن موجودا.أضف صفحة Razor فارغة جديدة باسم Beta ضمن دليل Pages . يتضمن ملفين Beta.cshtml و Beta.cshtml.cs.
افتح Beta.cshtml ، وقم بتحديثه بالترميز التالي:
@page @model MyWebApp.Pages.BetaModel @{ ViewData["Title"] = "Beta Page"; } <h1>This is the beta website.</h1>افتح Beta.cshtml.cs ، وأضف
FeatureGateسمة إلىBetaModelالفصل. تضمن السمةFeatureGateإمكانية الوصول إلى الصفحة التجريبية فقط عند تمكين علامة الميزة التجريبية . إذا لم يتم تمكين علامة الميزة التجريبية ، فستعرض الصفحة 404 لم يتم العثور عليها.using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.FeatureManagement.Mvc; namespace MyWebApp.Pages { [FeatureGate("Beta")] public class BetaModel : PageModel { public void OnGet() { } } }افتح Pages/_ViewImports.cshtml، وسجل مساعد العلامات لمدير الميزات باستخدام توجيه:
@addTagHelper@addTagHelper *, Microsoft.FeatureManagement.AspNetCoreتسمح
<feature>التعليمات البرمجية السابقة باستخدام Tag Helper في ملفات .cshtml الخاصة بالمشروع.افتح _Layout.cshtml في دليل Pages\Share . قم بإدراج علامة جديدة
<feature>بين عناصر شريط التنقل الصفحة الرئيسيةوالخصوصية ، كما هو موضح في الأسطر المميزة أدناه.<div class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse"> <ul class="navbar-nav flex-grow-1"> <li class="nav-item"> <a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a> </li> <feature name="Beta"> <li class="nav-item"> <a class="nav-link text-dark" asp-area="" asp-page="/Beta">Beta</a> </li> </feature> <li class="nav-item"> <a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a> </li> </ul> </div>تضمن العلامة
<feature>عرض عنصر القائمة التجريبية فقط عند تمكين علامة الميزة التجريبية .ضع التطبيق في حاوياتوادفع الصورة إلى Azure Container Registry.
نشر التطبيق. قم بتحديث المتصفح وستبدو صفحة الويب كما يلي:
استخدام موفر Kubernetes لتحميل علامات الميزات
قم بتحديث ملف appConfigurationProvider.yaml الموجود في دليل النشر بالمحتوى التالي.
apiVersion: azconfig.io/v1 kind: AzureAppConfigurationProvider metadata: name: appconfigurationprovider-sample spec: endpoint: <your-app-configuration-store-endpoint> target: configMapName: configmap-created-by-appconfig-provider configMapData: type: json key: mysettings.json auth: workloadIdentity: managedIdentityClientId: <your-managed-identity-client-id> featureFlag: selectors: - keyFilter: 'Beta' refresh: enabled: trueTip
عند تحديد لا
selectorsفيfeatureFlagالقسم، لن يقوم موفر Kubernetes بتحميل علامات الميزات من متجر تكوين التطبيق. الفاصل الزمني الافتراضي للتحديث لعلامات الميزات هو 30 ثانية عندfeatureFlag.refreshالتمكين. يمكنك تخصيص هذا السلوك عبر المعلمةfeatureFlag.refresh.interval.قم بتشغيل الأمر التالي لتطبيق التغييرات.
kubectl apply -f ./Deployment -n appconfig-demoقم بتحديث علامة الميزة التجريبية في متجر إعدادات التطبيق. قم بتمكين العلامة عن طريق تحديد خانة الاختيار ضمن ممكن.
بعد تحديث المتصفح عدة مرات ، سيصبح المحتوى المحدث مرئيا بمجرد تحديث ConfigMap في غضون 30 ثانية.
حدد القائمة التجريبية . سينقلك إلى موقع الويب التجريبي الذي قمت بتمكينه ديناميكيا.
تنظيف الموارد
قم بإلغاء تثبيت موفر Kubernetes لتكوين التطبيق من نظام مجموعة AKS إذا كنت تريد الاحتفاظ بنظام مجموعة AKS.
helm uninstall azureappconfiguration.kubernetesprovider --namespace azappconfig-system
إذا كنت لا تريد مواصلة استخدام الموارد التي تم إنشاؤها في هذه المقالة، يوصى بحذف مجموعة الموارد التي أنشأتها هنا لتجنب الرسوم.
Important
حذف مجموعة الموارد لا يمكن التراجع عنه. يتم حذف مجموعة الموارد وجميع الموارد المضمنة فيها نهائيًا. تأكد من عدم حذفك للموارد أو مجموعة المورد الخاطئة عن غير قصد. في حالة إنشاء الموارد لهذه المقالة داخل مجموعة موارد تشتمل على موارد أخرى تريد الاحتفاظ بها، احذف كل مورد على حدة من الجزء الخاص به بدلًا من حذف مجموعة الموارد.
- سجل الدخول إلى مدخل Microsoft Azure، وحدد Resource groups.
- في المربع تصفية حسب الاسم ، أدخل اسم مجموعة الموارد الخاصة بك.
- في قائمة النتائج، حدد اسم مجموعة الموارد لاستعراض نظرة عامة.
- حدد Delete resource group.
- يُطلب منك تأكيد حذف مجموعة الموارد. أدخل اسم مجموعة الموارد للتأكيد وحدد "Delete".
بعد بضع لحظات، يتم حذف مجموعة الموارد وكافة مواردها.
الخطوات التالية
في هذه البداية السريعة، قمت بـ:
- تمت إضافة إمكانية إدارة الميزات إلى تطبيق ASP.NET Core الذي يعمل في Azure Kubernetes Service (AKS).
- توصيل نظام مجموعة AKS بمخزن تكوين التطبيق باستخدام موفر Kubernetes لتكوين التطبيق.
- تم إنشاء ConfigMap مع القيم الرئيسية وعلامات الميزات من متجر App Configuration الخاص بك.
- قم بتشغيل التطبيق بالتكوين الديناميكي من متجر تكوين التطبيق الخاص بك دون تغيير التعليمات البرمجية للتطبيق الخاص بك.
لمعرفة المزيد حول موفر Kubernetes لتكوين تطبيق Azure، راجع مرجع موفر Kubernetes لتكوين تطبيق Azure.
لمعرفة المزيد حول إمكانية إدارة الميزات، تابع إلى البرنامج التعليمي التالي.