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ı'ndan yapılandırmayı dinamik olarak yenilemek için temel bir Go konsol uygulamasını geliştireceksiniz. Bu, uygulamanızın yeniden başlatma gerektirmeden yapılandırma değişikliklerini almasını sağlar.
Önkoşullar
Uygulama Yapılandırması'dan verileri yeniden yükleme
appconfig.godosyasını açın.loadAzureAppConfigurationişlevinin içindeoptionsöğesini güncelleştirin ve yenilemeyi etkinleştirin. Go sağlayıcısı, seçilen anahtar değerlerinden herhangi birinde ( Config ile başlayan ve etiketi olmayanlar) bir değişiklik algıladıkça tüm yapılandırmayı yeniden yükler. Yapılandırma değişikliklerini izleme hakkında daha fazla bilgi için bkz. Yapılandırma yenileme için en iyi yöntemler.options := &azureappconfiguration.Options{ Selectors: []azureappconfiguration.Selector{ { KeyFilter: "Config.*", }, }, TrimKeyPrefixes: []string{"Config."}, RefreshOptions: azureappconfiguration.KeyValueRefreshOptions{ Enabled: true, }, }Tavsiye
Intervalözelliğini,RefreshOptions'nin yapılandırma yenilemeleri arasındaki en düşük süreyi belirtmek için ayarlayabilirsiniz. Bu örnekte varsayılan 30 saniye değerini kullanırsınız. Uygulama Yapılandırması deponuza yapılan istek sayısını azaltmanız gerekiyorsa daha yüksek bir değere ayarlayın.Dosyasını
main.goaçın ve ana işlevinize aşağıdaki kodu ekleyin:// Existing code in main.go // ... ... fmt.Println("\nRaw JSON Configuration:") fmt.Println("------------------------") fmt.Println(string(jsonBytes)) // Register refresh callback to update the configuration provider.OnRefreshSuccess(func() { var updatedConfig Config // Re-unmarshal the configuration err := provider.Unmarshal(&updatedConfig, nil) if err != nil { log.Printf("Error unmarshalling updated configuration: %s", err) return } fmt.Printf("Message: %s\n", updatedConfig.Message) }) // Setup a channel to listen for termination signals done := make(chan os.Signal, 1) signal.Notify(done, syscall.SIGINT, syscall.SIGTERM) fmt.Println("\nWaiting for configuration changes...") fmt.Println("(Update values in Azure App Configuration to see refresh in action)") fmt.Println("Press Ctrl+C to exit") // Start a ticker to periodically trigger refresh ticker := time.NewTicker(30 * time.Second) defer ticker.Stop() // Keep the application running until terminated for { select { case <-ticker.C: // Trigger refresh in background go func() { ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() if err := provider.Refresh(ctx); err != nil { log.Printf("Error refreshing configuration: %s", err) } }() case <-done: fmt.Println("\nExiting...") return } }
Uygulamayı çalıştırma
Uygulamanızı çalıştırın:
go mod tidy go run .Uygulamayı çalışır durumda tutun.
Uygulama Yapılandırma deponuza gidin ve anahtarın değerini güncelleştirin
Config.Message.Anahtar Değer İçerik türü Config.Message Merhaba Dünya - güncelleştirildi! Boş bırakın Konsol uygulamanızı gözlemleyin- 30 saniye içinde değişikliği algılar ve güncelleştirilmiş yapılandırmayı görüntüler.
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.