Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu hızlı başlangıçta Azure Uygulama Yapılandırması'nda bir özellik bayrağı oluşturacak ve yeniden başlatmadan veya yeniden dağıtmadan AKS'de çalışan ASP.NET Core uygulamasındaki yeni bir web sayfasının görünürlüğünü dinamik olarak denetlemek için kullanacaksınız.
Önkoşullar
Azure Kubernetes Service'te dinamik yapılandırmayı kullanmak için belgeleri izleyin.
- Hızlı Başlangıç: Azure Kubernetes Service'te Azure Uygulama Yapılandırmasını kullanma
- Öğretici: Azure Kubernetes Service'te dinamik yapılandırmayı kullanma
Özellik bayrağı oluşturma
Uygulama Yapılandırma deposuna Beta adlı bir özellik bayrağı ekleyin ve Etiket ve Açıklama değerlerini varsayılan değerleriyle bırakın. Azure portalını veya CLI'yı kullanarak bir depoya özellik bayrakları ekleme hakkında daha fazla bilgi için Özellik bayrağı oluşturma bölümüne gidin.
Özellik bayrağı kullanma
Bu bölümde, basit bir ASP.NET web uygulamasında özellik bayraklarını kullanacak ve Azure Kubernetes Service'te (AKS) çalıştıracaksınız.
Hızlı Başlangıçta oluşturduğunuz projenin dizinine gidin ve Microsoft.FeatureManagement.AspNetCore NuGet paketi sürüm 3.2.0 veya sonraki bir sürüme başvuru eklemek için aşağıdaki komutu çalıştırın.
dotnet add package Microsoft.FeatureManagement.AspNetCoreprogram.cs açın ve çağrısı
AddFeatureManagementyaparak uygulamanızın hizmet koleksiyonuna özellik yönetimi ekleyin.// 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 // ... ...Dosya yoksa en üstüne ekleyin
using Microsoft.FeatureManagement;.Sayfalar dizininin altına Beta adlı yeni boş bir Razor sayfası ekleyin. Beta.cshtml ve Beta.cshtml.cs dosyaları içerir.
Beta.cshtml dosyasını açın ve aşağıdaki işaretlemeyle güncelleştirin:
@page @model MyWebApp.Pages.BetaModel @{ ViewData["Title"] = "Beta Page"; } <h1>This is the beta website.</h1>Beta.cshtml.cs açın ve sınıfına
BetaModelöznitelik ekleyinFeatureGate.FeatureGateözniteliği, Beta sayfasının yalnızca Beta özellik bayrağı etkinleştirildiğinde erişilebilir olmasını sağlar. Beta özellik bayrağı etkin değilse, sayfa 404 Bulunamadı değerini döndürür.using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.FeatureManagement.Mvc; namespace MyWebApp.Pages { [FeatureGate("Beta")] public class BetaModel : PageModel { public void OnGet() { } } }Pages/_ViewImports.cshtml dosyasını açın ve bir
@addTagHelperyönerge kullanarak özellik yöneticisi Etiket Yardımcısı'nı kaydedin:@addTagHelper *, Microsoft.FeatureManagement.AspNetCoreYukarıdaki kod, Etiket Yardımcısı'nın projenin .cshtml dosyalarında kullanılmasını sağlar
<feature>.Sayfalar\Paylaşılan dizininde _Layout.cshtml dosyasını açın. Aşağıdaki vurgulanan satırlarda gösterildiği gibi Giriş ve Gizlilik gezinti çubuğu öğelerinin arasına yeni
<feature>bir etiket ekleyin.<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>Etiketi,
<feature>Beta menü öğesinin yalnızca Beta özellik bayrağı etkinleştirildiğinde gösterilmesini sağlar.Uygulamayı kapsayıcıya alma ve Görüntüyü Azure Container Registry'ye gönderme.
Uygulamayı dağıtın. Tarayıcıyı yenilediğinizde web sayfası şöyle görünür:
Özellik bayraklarını yüklemek için Kubernetes Sağlayıcısını kullanma
Dağıtım dizininde bulunan appConfigurationProvider.yaml dosyasını aşağıdaki içerikle güncelleştirin.
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: trueTavsiye
Bölümünde hayır
selectorsbelirtilmediğindefeatureFlag, Kubernetes Sağlayıcısı Uygulama Yapılandırma deponuzdan özellik bayraklarını yüklemez. Özellik bayraklarının varsayılan yenileme aralığı etkinleştirildiğindefeatureFlag.refresh30 saniyedir. Bu davranışı parametresi aracılığıylafeatureFlag.refresh.intervalözelleştirebilirsiniz.Değişiklikleri uygulamak için aşağıdaki komutu çalıştırın.
kubectl apply -f ./Deployment -n appconfig-demoUygulama Yapılandırma deponuzda Beta özellik bayrağını güncelleştirin. Etkin altındaki onay kutusunu seçerek bayrağı etkinleştirin.
Tarayıcıyı birden çok kez yeniledikten sonra, ConfigMap 30 saniye içinde güncelleştirildikten sonra güncelleştirilmiş içerik görünür hale gelir.
Beta menüsünü seçin. Sizi dinamik olarak etkinleştirdiğiniz beta web sitesine getirir.
Kaynakları temizle
AKS kümesini korumak istiyorsanız AKS kümenizden Uygulama Yapılandırması Kubernetes Sağlayıcısı'nı kaldırın.
helm uninstall azureappconfiguration.kubernetesprovider --namespace azappconfig-system
Bu makalede oluşturulan kaynakları kullanmaya devam etmek istemiyorsanız ücretlerden kaçınmak için burada oluşturduğunuz kaynak grubunu silin.
Önemli
Bir kaynak grubunu silmek geri alınamaz. Kaynak grubu ve içindeki tüm kaynaklar kalıcı olarak silinir. Yanlış kaynak grubunu veya kaynakları yanlışlıkla silmediğinizden emin olun. Bu makalenin kaynaklarını, saklamak istediğiniz diğer kaynakları içeren bir kaynak grubu içinde oluşturduysanız, kaynak grubunu silmek yerine her kaynağı ilgili bölmeden tek tek silin.
- Azure portalında oturum açın ve Kaynak grupları'nı seçin.
- Ada göre filtrele kutusuna kaynak grubunuzun adını girin.
- Genel bir bakış görmek için sonuç listesinde kaynak grubu adını seçin.
- Kaynak grubunu sil seçeneğini seçin.
- Kaynak grubunun silinmesini onaylamanız istenir. Onaylamak için kaynak grubunuzun adını girin ve Sil'i seçin.
Birkaç dakika sonra kaynak grubu ve tüm kaynakları silinir.
Sonraki Adımlar
Bu hızlı başlangıç rehberinde şunları yapacaksınız:
- Azure Kubernetes Service'te (AKS) çalışan bir ASP.NET Core uygulamasına özellik yönetimi özelliği eklendi.
- AKS kümenizi Uygulama Yapılandırması Kubernetes Sağlayıcısı'nı kullanarak Uygulama Yapılandırma deponuza bağladınız.
- Uygulama Yapılandırma deponuzdan anahtar değerleri ve özellik bayraklarıyla bir ConfigMap oluşturdunuz.
- Uygulama kodunuzu değiştirmeden uygulamayı Uygulama Yapılandırma deponuzdan dinamik yapılandırmayla çalıştırarak.
Azure Uygulama Yapılandırması Kubernetes Sağlayıcısı hakkında daha fazla bilgi edinmek için bkz. Azure Uygulama Yapılandırması Kubernetes Sağlayıcısı başvurusu.
Özellik yönetimi özelliği hakkında daha fazla bilgi edinmek için aşağıdaki öğreticiye geçin.