Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto kurzu se dozvíte, jak implementovat dynamické aktualizace konfigurace ve webové aplikaci Gin pomocí služby Azure App Configuration. Vychází z webové aplikace představené v předchozím rychlém startu.
Požadavky
Dokončení rychlého startu: Vytvoření webové aplikace Gin pomocí azure App Configuration
Opětovné načtení dat z konfigurace aplikace
Otevřete soubor
appconfig.go. Uvnitř funkce změňteloadAzureAppConfigurationpro umožnění aktualizace. Zprostředkovatel Go znovu načte celou konfiguraci, kdykoli zjistí změnu v některé z vybraných hodnot klíčů. 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
IntervalvlastnostRefreshOptions, 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.Aktualizujte svůj
main.gosoubor tak, abyste zaregistrovali funkci zpětného volání pro aktualizace konfigurace.// Existing code // ... ... var config Config if err := provider.Unmarshal(&config, nil); err != nil { log.Fatalf("Failed to unmarshal configuration: %v", err) } // Register refresh callback provider.OnRefreshSuccess(func() { // Re-unmarshal the configuration err := provider.Unmarshal(&config, nil) if err != nil { log.Printf("Failed to unmarshal updated configuration: %s", err) return } }) // The rest of existing code //... ...Přidejte aktualizační middleware pro konfiguraci. Aktualizujte
main.gonásledujícím kódem.// Existing code // ... ... type App struct { Name string Port int } func configRefreshMiddleware(provider *azureappconfiguration.AzureAppConfiguration) gin.HandlerFunc { return func(c *gin.Context) { // Start refresh in a goroutine to avoid blocking the request go func() { ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() if err := provider.Refresh(ctx); err != nil { log.Printf("Error refreshing configuration: %s", err) } }() c.Next() } } // The rest of existing code //... ...Použijte middleware aktualizace konfigurace:
// Existing code // ... ... router := gin.Default() // Use the configuration refresh middleware router.Use(configRefreshMiddleware(provider)) // The rest of existing code //... ...
Aktualizace konfigurace řízená požadavky
Aktualizace konfigurace se aktivuje příchozími požadavky vaší webové aplikace. Pokud je vaše aplikace nečinná, nedojde k žádné aktualizaci. Když je aplikace aktivní, middleware aktualizace konfigurace monitoruje vybrané klíčové hodnoty, které jste nakonfigurovali v azureappconfiguration.Options. Middleware se aktivuje při každém příchozím požadavku do vaší aplikace. Middleware však pošle požadavky na kontrolu hodnoty v App Configuration pouze tehdy, když uplynul vámi nastavený interval aktualizace.
- Pokud požadavek na konfiguraci aplikace pro detekci změn selže, vaše aplikace bude dál používat konfiguraci uloženou v mezipaměti. Nové pokusy o kontrolu změn se budou pravidelně provádět, pokud budou vaší aplikaci přicházet nové požadavky.
- Aktualizace konfigurace probíhá asynchronně ke zpracování příchozích požadavků vaší aplikace. Příchozí požadavek, který aktivoval aktualizaci, nezablokuje ani nezpomalí. Požadavek, který aktivoval aktualizaci, nemusí získat aktualizované hodnoty konfigurace, ale později požadavky získají nové hodnoty konfigurace.
- Pokud chcete zajistit, aby se middleware aktivoval, použijte middleware aktualizace konfigurace co nejdříve ve zpracování požadavků, aby ho jiný middleware ve vaší aplikaci nemohl přeskočit.
Spuštění webové aplikace
Teď, když jste nastavili dynamickou aktualizaci konfigurace, otestujeme ji, abychom ji viděli v akci.
Aplikaci spusťte.
go mod tidy go run .Otevřete webový prohlížeč a navigujte na stránku
http://localhost:8080pro přístup k aplikaci. Webová stránka vypadá takto:
Přejděte do obchodu App Configuration a aktualizujte hodnotu
Config.Messageklíče.Klíč Hodnota Typ obsahu Config.Message Dobrý den z Azure App Configuration – teď s živými aktualizacemi! Nechejte prázdné. Po několikanásobné aktualizaci prohlížeče se po aktualizaci objektu ConfigMap během 30 sekund zobrazí aktualizovaný obsah.
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ů.
- Přihlaste se k webu Azure Portal a vyberte skupiny prostředků.
- Do pole Filtrovat podle názvu zadejte název vaší skupiny prostředků.
- V seznamu výsledků vyberte název skupiny prostředků, abyste zobrazili přehled.
- Vyberte odstranit skupinu zdrojů.
- 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.