Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questa guida introduttiva si migliorerà un'applicazione console Go di base per aggiornare dinamicamente la configurazione da Configurazione app di Azure. Ciò consente all'applicazione di selezionare le modifiche di configurazione senza richiedere un riavvio.
Prerequisiti
- Completare la Guida introduttiva: Creare un'app console Go con Configurazione app di Azure come punto di partenza per questa guida introduttiva
Ricarica i dati dalla configurazione dell'applicazione
Aprire il file
appconfig.go. All'interno della funzioneloadAzureAppConfiguration, aggiornareoptionsper abilitare l'aggiornamento. Il provider Go ricarica l'intera configurazione ogni volta che rileva una modifica in uno dei valori chiave selezionati (quelli che iniziano con Config e non hanno etichetta). Per altre informazioni sul monitoraggio delle modifiche alla configurazione, vedere Procedure consigliate per l'aggiornamento della configurazione.options := &azureappconfiguration.Options{ Selectors: []azureappconfiguration.Selector{ { KeyFilter: "Config.*", }, }, TrimKeyPrefixes: []string{"Config."}, RefreshOptions: azureappconfiguration.KeyValueRefreshOptions{ Enabled: true, }, }Suggerimento
È possibile impostare la proprietà
IntervaldiRefreshOptionsper specificare il tempo minimo tra gli aggiornamenti della configurazione. In questo esempio si usa il valore predefinito di 30 secondi. Impostare un valore superiore se è necessario ridurre il numero di richieste effettuate nell'archivio di Configurazione app.Aprire il file
main.goe aggiungere il codice seguente alla funzione principale:// 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 } }
Eseguire l'applicazione
Eseguire l'applicazione:
go mod tidy go run .Mantenere l'applicazione in esecuzione.
Passare all'archivio di configurazione dell'app e aggiornare il valore della chiave
Config.Message.Chiave Valore Tipo di contenuto Config.Message Hello World - aggiornato! Lasciare vuoto Osservare l'applicazione console: entro 30 secondi, dovrebbe rilevare la modifica e visualizzare la configurazione aggiornata.
Pulire le risorse
Se non si vuole continuare a usare le risorse create in questo articolo, eliminare il gruppo di risorse creato qui per evitare addebiti.
Importante
L'eliminazione di un gruppo di risorse è irreversibile. Il gruppo di risorse e tutte le risorse in esso contenute vengono eliminati in modo permanente. Assicurarsi di non eliminare accidentalmente il gruppo di risorse o le risorse sbagliate. Se le risorse per questo articolo sono state create in un gruppo di risorse che contiene altre risorse che si vogliono mantenere, eliminare ogni risorsa singolarmente dal rispettivo riquadro anziché eliminare il gruppo di risorse.
- Accedere al portale di Azure e selezionare Gruppi di risorse.
- Nella casella Filtra per nome immettere il nome del gruppo di risorse.
- Nell'elenco dei risultati selezionare il nome del gruppo di risorse per visualizzare una panoramica.
- Selezionare Elimina gruppo di risorse.
- Verrà chiesto di confermare l'eliminazione del gruppo di risorse. Immettere il nome del gruppo di risorse per confermare e selezionare Elimina.
Dopo qualche istante, il gruppo di risorse e tutte le risorse che contiene vengono eliminati.