Sdílet prostřednictvím


Kurz: Povolení dynamické aktualizace konfigurace v konzolové aplikaci Go

V tomto rychlém startu vylepšíte základní konzolovou aplikaci Go tak, aby dynamicky aktualizovala konfiguraci z Azure App Configuration. Toto vaší aplikaci umožňuje převzít změny konfigurace bez potřeby restartu.

Požadavky

Opětovné načtení dat z konfigurace aplikace

  1. Otevřete soubor appconfig.go. Uvnitř funkce povolte loadAzureAppConfiguration pro obnovení. Zprostředkovatel Go znovu načte celou konfiguraci, kdykoli zjistí změnu v některé z vybraných hodnot klíč-hodnota (ty, které začínají konfigurací a nemají žádný popisek). Pro více informací o sledování změn konfigurace viz Nejlepší praxe pro aktualizaci konfigurace.

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

    Návod

    Můžete nastavit Interval vlastnost RefreshOptions , která určuje minimální čas mezi aktualizacemi konfigurace. V tomto příkladu použijete výchozí hodnotu 30 sekund. Pokud potřebujete snížit počet požadavků provedených ve službě App Configuration Store, upravte hodnotu na vyšší hodnotu.

  2. Otevřete soubor main.go a do hlavní funkce přidejte následující kód:

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

Spuštění aplikace

  1. Spusťte aplikaci:

     go mod tidy
     go run .
    
  2. Nechte aplikaci spuštěnou.

  3. Přejděte do obchodu App Configuration a aktualizujte hodnotu Config.Message klíče.

    Klíč Hodnota Typ obsahu
    Config.Message Hello World – aktualizováno! Nechejte prázdné.
  4. Sledujte konzolovou aplikaci – během 30 sekund by měla zjistit změnu a zobrazit aktualizovanou konfiguraci.

Vyčistěte zdroje

Pokud nechcete dál používat prostředky vytvořené v tomto článku, odstraňte skupinu prostředků, kterou jste tady vytvořili, abyste se vyhnuli poplatkům.

Důležité

Odstranění skupiny prostředků je nevratné. Skupina prostředků a všechny prostředky v ní se trvale odstraní. Dávejte pozor, abyste omylem neodstranili nesprávnou skupinu prostředků nebo jednotlivé prostředky. Pokud jste vytvořili prostředky pro tento článek ve skupině prostředků, která obsahuje další prostředky, které chcete zachovat, odstraňte jednotlivé prostředky z příslušného podokna místo odstranění skupiny prostředků.

  1. Přihlaste se k webu Azure Portal a vyberte skupiny prostředků.
  2. Do pole Filtrovat podle názvu zadejte název vaší skupiny prostředků.
  3. V seznamu výsledků vyberte název skupiny prostředků, abyste zobrazili přehled.
  4. Vyberte odstranit skupinu zdrojů.
  5. Zobrazí se výzva k potvrzení odstranění skupiny prostředků. Potvrďte název skupiny prostředků a vyberte Odstranit.

Po několika okamžicích se skupina prostředků a všechny její prostředky vymažou.