Freigeben über


Lernprogramm: Aktivieren der dynamischen Konfigurationsaktualisierung in einer Go-Konsolen-App

In dieser Schnellstartanleitung erweitern Sie eine einfache Go-Konsolenanwendung, um die Konfiguration von Azure App Configuration dynamisch zu aktualisieren. Auf diese Weise kann Ihre Anwendung Konfigurationsänderungen übernehmen, ohne einen Neustart zu erfordern.

Voraussetzungen

Erneutes Laden von Daten aus App Configuration

  1. Öffnen Sie die Datei appconfig.go. Aktualisieren Sie innerhalb der loadAzureAppConfiguration-Funktion „options“, um die Aktualisierung zu aktivieren. Der Go-Anbieter lädt die gesamte Konfiguration neu, wenn eine Änderung in einem der ausgewählten Schlüsselwerte erkannt wird (die mit "Config " beginnen und keine Bezeichnung haben). Weitere Informationen zum Überwachen von Konfigurationsänderungen finden Sie unter Bewährte Methoden für die Aktualisierung der Konfiguration.

    options := &azureappconfiguration.Options{
        Selectors: []azureappconfiguration.Selector{
            {
                KeyFilter: "Config.*",
            },
        },
        TrimKeyPrefixes: []string{"Config."},
        RefreshOptions: azureappconfiguration.KeyValueRefreshOptions{
            Enabled:  true,
        },
    }
    

    Tipp

    Sie können die Interval-Eigenschaft des RefreshOptions festlegen, um die Mindestzeit zwischen Konfigurationsaktualisierungen anzugeben. In diesem Beispiel verwenden Sie den Standardwert von 30 Sekunden. Stellen Sie einen höheren Wert ein, wenn Sie die Anzahl der Anfragen an Ihren App Configuration Store verringern müssen.

  2. Öffnen Sie die Datei main.go , und fügen Sie der Hauptfunktion den folgenden Code hinzu:

    // 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
        }
    }
    

Ausführen der Anwendung

  1. Führen Sie Ihre Anwendung aus:

     go mod tidy
     go run .
    
  2. Halten Sie die Anwendung am Laufen.

  3. Navigieren Sie zu Ihrem App-Konfigurationsspeicher, und aktualisieren Sie den Wert des Config.Message Schlüssels.

    Schlüssel Wert Inhaltstyp
    Config.Message Hallo Welt - aktualisiert! Leer lassen
  4. Beobachten Sie Ihre Konsolenanwendung – innerhalb von 30 Sekunden sollte die Änderung erkannt und die aktualisierte Konfiguration angezeigt werden.

Bereinigen von Ressourcen

Wenn Sie die in diesem Artikel erstellten Ressourcen nicht mehr verwenden möchten, löschen Sie die erstellte Ressourcengruppe, um Kosten zu vermeiden.

Von Bedeutung

Das Löschen einer Ressourcengruppe kann nicht rückgängig gemacht werden. Die Ressourcengruppe und alle darin enthaltenen Ressourcen werden unwiderruflich gelöscht. Achten Sie daher darauf, dass Sie nicht versehentlich die falsche Ressourcengruppe oder die falschen Ressourcen löschen. Falls Sie die Ressourcen für diesen Artikel in einer Ressourcengruppe erstellt haben, die andere beizubehaltende Ressourcen enthält, löschen Sie die Ressourcen einzeln über den entsprechenden Bereich, statt die Ressourcengruppe zu löschen.

  1. Melden Sie sich beim Azure-Portal an, und klicken Sie auf Ressourcengruppen.
  2. Geben Sie im Feld Nach Name filtern den Namen Ihrer Ressourcengruppe ein.
  3. Wählen Sie in der Ergebnisliste den Ressourcengruppennamen aus, um eine Übersicht anzuzeigen.
  4. Wählen Sie die Option Ressourcengruppe löschen.
  5. Sie werden aufgefordert, das Löschen der Ressourcengruppe zu bestätigen. Geben Sie zur Bestätigung den Namen Ihrer Ressourcengruppe ein, und klicken Sie auf Löschen.

Daraufhin werden die Ressourcengruppe und alle darin enthaltenen Ressourcen gelöscht.