Como Carregar Configuração de Aplicativo do Azure App Configuration
Certos valores de um aplicativo são isolados em arquivos de configuração. Por exemplo, com variáveis definidas em um arquivo .env
ou propriedades definidas em um arquivo de formato .json
.
Hoje em dia podemos centralizar os valores de configuração de um aplicativo na nuvem. Um dos servições de configuração de aplicativo é o Azure App Configuration.
App Configuration no Portal do Azure
Depois de criar uma conta no Azure e entrar no sistema, procure por App Configuration. Clique + Criar
.
Escolha a sua assinatura e um grupo de recursos (crie um se não tiver ainda).
Nos detalhes de instância, escolha a sua localização. Depois digite um nome para o recurso ("Resource name"). Escolha o esquema de preço ("Pricing tier").
Siga para a próxima seção após clicar Next
. As próximas seções são opcionais e cabe a você mudar se quiser.
A última seção é para rever o plano. Se tudo estiver nos conformes, clique Create
para terminar.
Na página da sua instância do App Configuration, tem o Configuration explorer
na barra lateral.
Pode-se criar valores de configuração se clicar, na seção do conteúdo principal, + Create
, seguido de Key-value
. Escolha um nome para a chave ("Key") e siga com o seu valor na caixa de texto seguinte ("Value"). Clique Apply
.
Antes de irmos para o código, é preciso obter as credenciais para acessar os pares de chave-valor. Há maneiras diferentes de se autenticar. Nesse exemplo, usaremos a string de conexão. Clique Access keys
na barra lateral. Neste exemplo, só permitirei leitura dos valores de configuração, então clique na aba de Read-only keys
. Copie a string de conexão ("Connection string"), pois este valor será usado no código.
Biblioteca Cliente para JavaScript
Agora vamos ver como obter os valores da nuvem de um aplicativo de Node.js.
Primeiro de tudo, tem que ter o Node.js e o NPM instalado (outro gerenciador também serve). Instale o seguinte, em um terminal:
npm install @azure/app-configuration
Agora, vamos para o código:
const AzureAppConfiguration = require("@azure/app-configuration");
// Aqui se coloca a string de conexão que foi copiada do portal do Azure
// Sugiro armazenar em um arquivo de configuração, provavelmente não incluído em commit
const AzureAppConfigConnectionString = "Endpoint=https://<seu-app-config>.azconfig.io;Id=<seu-id>;Secret=<seu-secret>";
const appConfigurationClient = new AzureAppConfiguration.AppConfigurationClient(AzureAppConfigConnectionString);
Para usar o cliente de configuração de app, o AppConfigurationClient, precisamos importar do módulo @azure/app-configuration
. Depois, criamos uma instância do cliente, passando a string de conexão como argumento.
Existem várias maneiras de obter os valores de configuração. Nessa demonstração, vamos obter todos os pares de chave-valor:
for await (const configurationSetting of appConfigurationClient.listConfigurationSettings()) {
// Faça o que quiser aqui com a chave e o valor
// Por exemplo, armazenar os valores de configuração em uma variável na memória
// para o uso posterior
console.log({
chave: configurationSetting.key,
valor: configurationSetting.value
});
}
O exemplo acima usa o método listConfigurationSettings()
para iterar sobre todos os pares de chave-valor. Usamos uma repetição com o await
porque o método retorna uma promessa. O objeto resolvido de cada promessa da repetição contém as propriedades de chave e do valor: key
e value
, respectivamente.
Integração em um Aplicativo Existente
Há várias maneiras de integrar o uso de Azure App Configuration no seu aplicativo.
Em ambos o casos que serão citados abaixo, se cria um arquivo para um módulo central de configuração que pode ser chamado a qualquer hora para obter os valores. A implementação específica, se for somente com funções, objeto, ou classe, depende do seu gosto.
Se você quiser economizar nas chamadas da API, você pode carregar as configurações uma vez só na hora do aplicativo iniciar. Nesse caso, os valores de configuração são armazenados na memória enquanto o aplicativo roda. Para recarregar os valores, você teria que reiniciar o aplicativo.
Outra maneira de se integrar o App Configuration é sempre carregar os valores na hora que eles forem requeridos. Esse método é mais caro, pois faz uma chamada de API a cada vez que um valor é requerido. Para economizar um pouco mais, cache, a prática de se lembrar dos valores por um certo tempo para evitar fazer as mesmas requisições repetidamente, pode ser implementado. Verifique na documentação do Azure App Configuration, pois provalmente já tem essa funcionalidade.