Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez az oktatóanyag bemutatja, hogyan implementálhat dinamikus konfigurációs frissítéseket egy Gin-webalkalmazásban az Azure App Configuration használatával. Az előző rövid útmutatóban bemutatott webalkalmazásra épül.
Előfeltételek
A rövid útmutató befejezése: Gin-webalkalmazás létrehozása az Azure App Configuration használatával
Adatok újrabetöltése az alkalmazáskonfigurációból
Nyissa meg a fájlt
appconfig.go
. AloadAzureAppConfiguration
függvényen belül módosítsa aoptions
-t a frissítés engedélyezéséhez. A Go-szolgáltató újra betölti a teljes konfigurációt, amikor a kiválasztott kulcsértékek bármelyikében változást észlel. A konfigurációváltozások figyelésével kapcsolatos további információkért tekintse meg a konfigurációfrissítés ajánlott eljárásait.options := &azureappconfiguration.Options{ Selectors: []azureappconfiguration.Selector{ { KeyFilter: "Config.*", }, }, TrimKeyPrefixes: []string{"Config."}, RefreshOptions: azureappconfiguration.KeyValueRefreshOptions{ Enabled: true, }, }
Jótanács
A
Interval
tulajdonságot beállíthatjaRefreshOptions
-en, hogy meghatározza a konfigurációfrissítések közötti minimális időt. Ebben a példában az alapértelmezett 30 másodperces értéket használja. Ha csökkenteni szeretné az Alkalmazáskonfigurációs áruházba érkező kérések számát, módosítsa magasabb értékre.Frissítse a fájlt,
main.go
hogy regisztráljon egy visszahívási függvényt a konfigurációfrissítésekhez:// 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 } })
Konfigurálási frissítési köztes szoftver hozzáadása. Frissítsen
main.go
az alábbi kóddal.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() } }
Használja a konfigurálási frissítés köztes szoftverét:
// Existing code // ... ... router := gin.Default() // Use the configuration refresh middleware router.Use(configRefreshMiddleware(provider)) // The rest of existing code //... ...
Kérelemalapú konfigurációfrissítés
A konfiguráció frissítését a webalkalmazáshoz érkező bejövő kérések aktiválják. Nem történik frissítés, ha az alkalmazás tétlen. Amikor az alkalmazás aktív, a konfigurációfrissítő köztes szoftver figyeli a azureappconfiguration.Options
-ben megadott kiválasztott kulcs-érték párokat. A köztes szoftver az alkalmazáshoz érkező minden bejövő kéréskor aktiválódik. A köztes szoftver azonban csak akkor küld kéréseket az alkalmazáskonfiguráció értékének ellenőrzésére, ha a megadott frissítési időköz lejárt.
- Ha az alkalmazáskonfiguráció kérése sikertelen a változásészleléshez, az alkalmazás továbbra is a gyorsítótárazott konfigurációt fogja használni. A módosítások ellenőrzésére tett új kísérletek rendszeres időközönként történnek, miközben új bejövő kérések érkeznek az alkalmazáshoz.
- A konfigurációfrissítés aszinkron módon történik az alkalmazás bejövő kéréseinek feldolgozása során. Nem blokkolja vagy lassítja a frissítést kiváltó bejövő kérést. Előfordulhat, hogy a frissítést kiváltó kérés nem kapja meg a frissített konfigurációs értékeket, de a későbbi kérések új konfigurációs értékeket kapnak.
- A köztes szoftver aktiválásának biztosításához használja a konfigurációfrissítő köztes szoftvert olyan korán, amennyire csak lehet a kérelem-feldolgozási sorban, hogy egy másik köztes szoftver ne hagyhassa figyelmen kívül az alkalmazásban.
A webalkalmazás futtatása
Most, hogy beállította a dinamikus konfigurációfrissítést, teszteljük, hogy működés közben láthassa.
Indítsa el az alkalmazást.
go run main.go
Nyisson meg egy webböngészőt, és navigáljon
http://localhost:8080
az alkalmazás eléréséhez. A weblap a következőképpen néz ki:Lépjen az Alkalmazáskonfigurációs áruházba, és frissítse a
Config.Message
kulcs értékét.Kulcs Érték Tartalomtípus Config.Message Hello az Azure App Configurationból – most élő frissítésekkel! Hagyja üresen A böngésző néhány alkalommal történő frissítése után a frissített tartalom a ConfigMap 30 másodpercen belüli frissítése után jelenik meg.
Erőforrások tisztítása
Ha nem szeretné folytatni a cikkben létrehozott erőforrások használatát, törölje az itt létrehozott erőforráscsoportot a díjak elkerülése érdekében.
Fontos
Egy erőforráscsoport törlése visszafordíthatatlan. Az erőforráscsoport és a benne lévő összes erőforrás véglegesen törlődik. Győződjön meg arról, hogy nem véletlenül törli a rossz erőforráscsoportot vagy erőforrásokat. Ha a cikk erőforrásait olyan erőforráscsoporton belül hozta létre, amely más megtartani kívánt erőforrásokat tartalmaz, törölje az egyes erőforrásokat a megfelelő panelről az erőforráscsoport törlése helyett.
- Jelentkezzen be az Azure Portalra, és válassza ki az Erőforráscsoportokat.
- A Szűrés név szerint mezőbe írja be az erőforráscsoport nevét.
- Az eredménylistában válassza ki az erőforráscsoport nevét az áttekintés megtekintéséhez.
- Válassza az Erőforráscsoport törlése lehetőséget.
- A rendszer az erőforráscsoport törlésének megerősítését kéri. Adja meg a megerősítéshez az erőforráscsoport nevét, és válassza a Törlés lehetőséget.
Néhány pillanat múlva az erőforráscsoport és annak összes erőforrása törlődik.