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 bunu go konsol uygulamasındaki özelliklerin kullanılabilirliğini dinamik olarak denetlemek için kullanacaksınız.
Özellik yönetimi desteği, Uygulama Yapılandırması'daki dinamik yapılandırma özelliğini genişletir. Bu örnekte, gerçek zamanlı izleme özellikleriyle özellik bayraklarını Go konsol uygulamasıyla tümleştirme gösterilmektedir.
Önkoşullar
- Aktif bir aboneliğe sahip bir Azure hesabı. Ücretsiz bir tane oluşturun.
- Bir Uygulama Yapılandırma Mağazası. Mağaza oluşturma.
- 1.21 veya sonraki bir sürüme geçin. Go yükleme hakkında bilgi için Go indirmeleri sayfasına bakın.
- Azure App Configuration Go sağlayıcısı v1.1.0 veya üzeri.
Ö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
Go projeniz için yeni bir dizin oluşturun ve bu dizine gidin:
mkdir go-feature-flag-quickstart cd go-feature-flag-quickstartYeni bir Go modülü başlatın:
go mod init go-feature-flag-quickstartAzure Uygulama Yapılandırması ve özellik yönetimi için gerekli Go paketlerini yükleyin:
go get github.com/microsoft/Featuremanagement-Go/featuremanagement go get github.com/microsoft/Featuremanagement-Go/featuremanagement/providers/azappconfigAşağıdaki içeriğe sahip adlı
appconfig.gobir dosya oluşturun. Microsoft Entra Id (önerilen) veya bir bağlantı dizesi kullanarak Uygulama Yapılandırma deponuza bağlanabilirsiniz.package main import ( "context" "log" "os" "github.com/Azure/AppConfiguration-GoProvider/azureappconfiguration" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" ) func loadAzureAppConfiguration(ctx context.Context) (*azureappconfiguration.AzureAppConfiguration, error) { // Get the endpoint from environment variable endpoint := os.Getenv("AZURE_APPCONFIG_ENDPOINT") if endpoint == "" { log.Fatal("AZURE_APPCONFIG_ENDPOINT environment variable is not set") } // Create a credential using DefaultAzureCredential credential, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { log.Fatalf("Failed to create credential: %v", err) } // Set up authentication options with endpoint and credential authOptions := azureappconfiguration.AuthenticationOptions{ Endpoint: endpoint, Credential: credential, } // Configure feature flag options options := &azureappconfiguration.Options{ FeatureFlagOptions: azureappconfiguration.FeatureFlagOptions{ Enabled: true, RefreshOptions: azureappconfiguration.RefreshOptions{ Enabled: true, }, }, } // Load configuration from Azure App Configuration appConfig, err := azureappconfiguration.Load(ctx, authOptions, options) if err != nil { log.Fatalf("Failed to load configuration: %v", err) } return appConfig, nil }Tavsiye
içinde
FeatureFlagOptionshiçbir seçici belirtilmediğinde, Uygulama Yapılandırma deponuzda etiket içermeyentüm özellik bayraklarını yükler. Özellik bayraklarının varsayılan yenileme aralığı 30 saniyedir. Bu davranışı parametresi aracılığıylaRefreshOptionsözelleştirebilirsiniz. Örneğin, aşağıdaki kod parçacığı yalnızca TestApp ile başlayan özellik bayraklarını yükler: anahtar adlarında ve etiket geliştirmesine sahiptir. Kod ayrıca yenileme aralığı süresini 5 dakika olarak değiştirir. Bu yenileme aralığı süresinin normal anahtar-değerler için bu süreden ayrı olduğunu unutmayın.azureappconfiguration.FeatureFlagOptions{ Enabled: true, Selectors: []azureappconfiguration.Selector{ { KeyFilter: "TestApp:*", LabelFilter: "dev", }, }, RefreshOptions: azureappconfiguration.RefreshOptions{ Enabled: true, Interval: 5 * time.Minute, }, }Ana uygulama dosyasını
main.gooluşturun:package main import ( "context" "fmt" "log" "os" "time" "github.com/microsoft/Featuremanagement-Go/featuremanagement" "github.com/microsoft/Featuremanagement-Go/featuremanagement/providers/azappconfig" ) func main() { ctx := context.Background() // Load Azure App Configuration appConfig, err := loadAzureAppConfiguration(ctx) if err != nil { log.Fatalf("Error loading Azure App Configuration: %v", err) } // Create feature flag provider featureFlagProvider, err := azappconfig.NewFeatureFlagProvider(appConfig) if err != nil { log.Fatalf("Error creating feature flag provider: %v", err) } // Create feature manager featureManager, err := featuremanagement.NewFeatureManager(featureFlagProvider, nil) if err != nil { log.Fatalf("Error creating feature manager: %v", err) } // Monitor the Beta feature flag fmt.Println("Monitoring 'Beta' feature flag (press Ctrl+C to exit):") fmt.Println("Toggle the Beta feature flag in Azure portal to see real-time updates...") fmt.Println() ticker := time.NewTicker(5 * time.Second) defer ticker.Stop() for { select { case <-ticker.C: // Refresh configuration to get latest feature flag settings if err := appConfig.Refresh(ctx); err != nil { log.Printf("Error refreshing configuration: %v", err) continue } // Evaluate the Beta feature flag isEnabled, err := featureManager.IsEnabled("Beta") if err != nil { log.Printf("Error checking if Beta feature is enabled: %v", err) continue } // Print timestamp and feature status timestamp := time.Now().Format("15:04:05") fmt.Printf("[%s] Beta is enabled: %t\n", timestamp, isEnabled) case <-ctx.Done(): fmt.Println("\nShutting down...") return } } }
Uygulamayı çalıştırma
Uygulamayı çalıştırın:
go mod tidy go run .
Uygulama Beta özellik bayrağını izlemeye başlar ve 5 saniyede bir geçerli durumunu görüntüler:
Monitoring 'Beta' feature flag (press Ctrl+C to exit): Toggle the Beta feature flag in Azure portal to see real-time updates... [14:30:15] Beta is enabled: false [14:30:20] Beta is enabled: false [14:30:25] Beta is enabled: falseAzure portalınaoturum açın. Tüm kaynaklar'ı seçin ve daha önce oluşturduğunuz Uygulama Yapılandırma deposu'na tıklayın.
Özellik yöneticisi'ni seçin ve Beta özellik bayrağını bulun. Etkin altındaki onay kutusunu seçerek bayrağı etkinleştirin.
Konsol uygulamanıza dönün. Birkaç saniye sonra özellik bayrağı durumunun değiştiğini görmeniz gerekir:
[14:30:30] Beta is enabled: false [14:30:35] Beta is enabled: true [14:30:40] Beta is enabled: trueKonsol uygulamanızda yeniden başlatmadan gerçek zamanlı güncelleştirmeleri görmek için Azure portalında özellik bayrağını açıp kapatabilirsiniz.
Uygulamayı durdurmak için Ctrl+C tuşlarına basın.
Kaynakları temizle
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ıçta, Azure Uygulama Yapılandırması'nda bir özellik bayrağı oluşturdunuz ve bunu go konsol uygulamasında kullandınız. Özellik Yönetimi Go kitaplığı, Azure Uygulama Yapılandırması ile sorunsuz bir şekilde tümleşen zengin özellik bayrağı özellikleri sağlar. Diğer özellikler için aşağıdaki belgeye geçin.
Özellik bayrağı, uygulamanızdaki işlevselliği etkinleştirmenize veya devre dışı bırakmanıza olanak tanırken, uygulamanızın mantığına göre bir özellik bayrağını özelleştirmek isteyebilirsiniz. Özellik filtreleri, bir özellik bayrağını koşullu olarak etkinleştirmenizi sağlar. Daha fazla bilgi için aşağıdaki eğitime devam edin.
Azure Uygulaması Yapılandırması, özellik bayrağını yalnızca belirli bir dönemde veya uygulamanızın belirli bir hedef kitlesine etkinleştirmenizi sağlayan yerleşik özellik filtreleri sunar. Daha fazla bilgi için aşağıdaki eğitime devam edin.