Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym wprowadzeniu szybko ulepszysz podstawową aplikację konsolową w języku Go, aby dynamicznie odświeżać konfigurację z Azure App Configuration. Dzięki temu aplikacja może pobierać zmiany konfiguracji bez konieczności ponownego uruchamiania.
Wymagania wstępne
- Ukończ Szybki start: Tworzenie aplikacji konsolowej Go przez Azure App Configuration jako punkt wyjściowy dla tego szybkiego startu.
Ponowne ładowanie danych z usługi App Configuration
Otwórz plik
appconfig.go
. Wewnątrz funkcjiloadAzureAppConfiguration
, zaktualizujoptions
, aby włączyć odświeżanie. Dostawca Go ponownie załaduje całą konfigurację za każdym razem, gdy wykryje zmianę w którejkolwiek z wybranych wartości kluczowych (tych rozpoczynających się od Config. i nieposiadających etykiety). Aby uzyskać więcej informacji na temat monitorowania zmian konfiguracji, zobacz Najlepsze rozwiązania dotyczące odświeżania konfiguracji.options := &azureappconfiguration.Options{ Selectors: []azureappconfiguration.Selector{ { KeyFilter: "Config.*", }, }, TrimKeyPrefixes: []string{"Config."}, RefreshOptions: azureappconfiguration.KeyValueRefreshOptions{ Enabled: true, }, }
Wskazówka
Można ustawić właściwość
Interval
elementuRefreshOptions
, aby określić minimalny czas między odświeżeniami konfiguracji. W tym przykładzie użyjesz wartości domyślnej 30 sekund. Dostosuj do wyższej wartości, jeśli musisz zmniejszyć liczbę żądań wysyłanych do magazynu usługi App Configuration.Otwórz plik
unmarshal_sample.go
i dodaj następujący kod do funkcji main:// Existing code in unmarshal_sample.go // ... ... fmt.Printf("Timeout: %d seconds\n", config.App.Settings.Timeout) fmt.Printf("Retry Count: %d\n", config.App.Settings.RetryCount) // Register refresh callback to update and display the configuration provider.OnRefreshSuccess(func() { // Re-unmarshal the configuration err := appCfgProvider.Unmarshal(&updatedConfig, nil) if err != nil { log.Printf("Error unmarshalling updated configuration: %s", err) return } // Display the updated configuration displayConfig(config) }) // 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 } }
Uruchamianie aplikacji
Uruchom aplikację:
go run unmarshal_sample.go
Zachowaj działanie aplikacji.
Przejdź do swojego sklepu App Configuration i zaktualizuj wartość klucza
Config.Message
.Klawisz Wartość Typ zawartości Config.Message Witaj, świecie — zaktualizowano! Pozostaw pole puste Obserwuj aplikację konsolową — w ciągu 30 sekund powinna wykryć zmianę i wyświetlić zaktualizowaną konfigurację.
Uprzątnij zasoby
Jeśli nie chcesz nadal korzystać z zasobów utworzonych w tym artykule, usuń utworzoną tutaj grupę zasobów, aby uniknąć naliczania opłat.
Ważne
Usunięcie grupy zasobów jest nieodwracalne. Grupa zasobów i wszystkie zasoby w niej są trwale usuwane. Upewnij się, że nie usuniesz przypadkowo niewłaściwej grupy zasobów lub zasobów. Jeśli zasoby dla tego artykułu zostały utworzone w grupie zasobów zawierającej inne zasoby, które chcesz zachować, usuń każdy zasób oddzielnie z odpowiedniego okienka zamiast usuwać grupę zasobów.
- Zaloguj się do witryny Azure Portal i wybierz pozycję Grupy zasobów.
- W polu Filtruj według nazwy wprowadź nazwę grupy zasobów.
- Na liście wyników wybierz nazwę grupy zasobów, aby wyświetlić przegląd.
- Wybierz pozycję Usuń grupę zasobów.
- Poproszono Cię o potwierdzenie usunięcia grupy zasobów. Wprowadź nazwę grupy zasobów, aby potwierdzić, a następnie wybierz pozycję Usuń.
Po kilku chwilach grupa zasobów i wszystkie jej zasoby zostaną usunięte.