Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Neste início rápido, você aprimorará um aplicativo de console Go básico para atualizar dinamicamente a configuração da Configuração do Aplicativo do Azure. Isso permite que seu aplicativo pegue as alterações de configuração sem exigir uma reinicialização.
Pré-requisitos
- Conclua o Guia de início rápido: criar um aplicativo de console Go com a Configuração de Aplicativo do Azure como ponto de partida para este início rápido
Recarregar dados da Configuração do Aplicativo
Abra o ficheiro
appconfig.go
. Dentro da funçãoloadAzureAppConfiguration
, atualizeoptions
para ativar a atualização. O provedor Go recarregará toda a configuração sempre que detetar uma alteração em qualquer um dos valores-chave selecionados (aqueles que começam com Config. e não têm rótulo). Para obter mais informações sobre como monitorar alterações de configuração, consulte Práticas recomendadas para atualização de configuração.options := &azureappconfiguration.Options{ Selectors: []azureappconfiguration.Selector{ { KeyFilter: "Config.*", }, }, TrimKeyPrefixes: []string{"Config."}, RefreshOptions: azureappconfiguration.KeyValueRefreshOptions{ Enabled: true, }, }
Sugestão
Você pode definir a propriedade
Interval
doRefreshOptions
para especificar o tempo mínimo entre as atualizações de configuração. Neste exemplo, você usa o valor padrão de 30 segundos. Ajuste para um valor mais alto se precisar reduzir o número de solicitações feitas à sua App Configuration Store.Abra o ficheiro
unmarshal_sample.go
e adicione o seguinte código à sua função principal:// Existing code in unmarshal_sample.go // ... ... fmt.Printf("Timeout: %d seconds\n", config.App.Settings.Timeout) fmt.Printf("Retry Count: %d\n", config.App.Settings.RetryCount) // Register refresh callback to update and display the configuration provider.OnRefreshSuccess(func() { // Re-unmarshal the configuration err := appCfgProvider.Unmarshal(&updatedConfig, nil) if err != nil { log.Printf("Error unmarshalling updated configuration: %s", err) return } // Display the updated configuration displayConfig(config) }) // 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 } }
Execute o aplicativo
Execute seu aplicativo:
go run unmarshal_sample.go
Mantenha o aplicativo em execução.
Navegue até à sua loja de configuração de aplicativos e atualize o valor da chave
Config.Message
.Chave Valor Tipo de conteúdo Config.Message Hello World - atualizado! Deixar em branco Observe seu aplicativo de console - dentro de 30 segundos, ele deve detetar a alteração e exibir a configuração atualizada.
Limpeza de recursos
Se não quiser continuar a utilizar os recursos criados neste artigo, elimine o grupo de recursos que criou aqui para evitar cobranças.
Importante
A eliminação de um grupo de recursos é irreversível. O grupo de recursos e todos os recursos nele contidos são excluídos permanentemente. Certifique-se de não excluir acidentalmente o grupo de recursos ou recursos errados. Se você criou os recursos para este artigo dentro de um grupo de recursos que contém outros recursos que deseja manter, exclua cada recurso individualmente de seu respetivo painel em vez de excluir o grupo de recursos.
- Entre no portal do Azure e selecione Grupos de recursos.
- Na caixa Filtrar por nome, introduza o nome do seu grupo de recursos.
- Na lista de resultados, selecione o nome do grupo de recursos para ver uma visão geral.
- Selecione Eliminar grupo de recursos.
- É-lhe pedido que confirme a eliminação do grupo de recursos. Insira o nome do grupo de recursos a ser confirmado e selecione Excluir.
Após alguns momentos, o grupo de recursos e todos os seus recursos são excluídos.