Suporte à Configuração de Aplicativo do Azure para arquivos de configuração

Os arquivos são uma das maneiras mais comuns de armazenar dados de configuração. Para ajudá-lo a começar rapidamente, a Configuração do Aplicativo tem ferramentas para ajudá-lo a importar seus arquivos de configuração, para que você não precise digitar seus dados manualmente. Esta operação é uma migração de dados única se você planeja gerenciar seus dados na Configuração do aplicativo depois de importá-los. Em alguns outros casos, por exemplo, quando você adota a configuração como código, você pode continuar gerenciando seus dados de configuração em arquivos e importando-os como parte do seu processo de CI/CD recorrentemente. Você pode achar que um destes dois cenários se aplica a você:

  • Você mantém o arquivo de configuração no formato que tinha antes. Esse formato é útil se você quiser usar o arquivo como a configuração de fallback para seu aplicativo ou a configuração local durante o desenvolvimento. Ao importar o arquivo de configuração, especifique como deseja que os dados sejam transformados em valores-chave de Configuração do Aplicativo. Esta opção é o perfil de conteúdo de arquivo padrão nas ferramentas de importação da Configuração do Aplicativo, como portal, CLI do Azure, tarefa Push do Pipeline do Azure, Ações do GitHub, etc.
  • Você mantém o arquivo de configuração no formato que contém todas as propriedades de chave-valor da Configuração do Aplicativo. Ao importar o arquivo, você não precisa especificar nenhuma regra de transformação porque todas as propriedades de um valor-chave já estão no arquivo. Essa opção é chamada de perfil de conteúdo de arquivo KVSet nas ferramentas de importação de Configuração de Aplicativo. É útil se você quiser gerenciar todos os dados de Configuração do Aplicativo, incluindo valores de chave regulares, referências do Cofre de Chaves e sinalizadores de recursos, em um arquivo e importá-los de uma só vez.

O restante deste documento discutirá os perfis de conteúdo de arquivo em detalhes e usará a CLI do Azure como exemplo. O mesmo conceito também se aplica a outras ferramentas de importação de Configuração de Aplicativos.

Perfil de conteúdo do arquivo: padrão

O perfil de conteúdo de arquivo padrão nas ferramentas de Configuração de Aplicativo refere-se ao esquema de arquivo de configuração convencional amplamente adotado por estruturas ou sistemas de programação existentes. A Configuração do Aplicativo suporta os formatos de arquivo JSON, Yaml ou Propriedades.

O exemplo a seguir é um arquivo de configuração chamado appsettings.json contendo uma definição de configuração e um sinalizador de recurso.

{
    "Logging": {
        "LogLevel": {
            "Default": "Warning"
        }
    },
    "FeatureManagement": {
        "Beta": false
    }
}

Execute o seguinte comando da CLI para importá-lo para a Configuração do Aplicativo com o dev rótulo e use os dois pontos (:) como separador para nivelar o nome da chave. Opcionalmente, você pode adicionar o parâmetro "--profile appconfig/default". Ele é ignorado no exemplo, pois é o valor padrão.

az appconfig kv import --label dev --separator : --name <your store name> --source file --path appsettings.json --format json

As referências do Cofre de Chaves exigem um tipo de conteúdo específico durante a importação, para que você as mantenha em um arquivo separado. O exemplo a seguir é um arquivo chamado keyvault-refs.json.

{
    "Database:ConnectionString": {
        "uri": "https://<your-vault-name>.vault.azure.net/secrets/db-secret"
    }  
}

Execute o seguinte comando da CLI para importá-lo com o test rótulo e o tipo de conteúdo de referência do Cofre da Chave.

az appconfig kv import --label test --content-type "application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8" --name <your store name> --source file --path keyvault-refs.json --format json

A tabela a seguir mostra todos os dados importados em sua loja de configuração de aplicativos.

Key valor Etiqueta Tipo do conteúdo
.appconfig.featureflag/Beta {"id":"Beta","description":"","enabled":false,"conditions":{"client_filters":[]}} Dev aplicativo/vnd.microsoft.appconfig.ff+json; charset=utf-8
Log:LogLevel:Padrão Aviso Dev
Banco de dados:ConnectionString {"uri":"https://< seu-nome-do-cofre.vault.azure.net/secrets/db-secret>"} test application/vnd.microsoft.appconfig.keyvaultref+json; charset=utf-8

Perfil de conteúdo do arquivo: KVSet

O perfil de conteúdo do arquivo KVSet nas ferramentas de Configuração do Aplicativo refere-se a um esquema de arquivo que contém todas as propriedades de um valor-chave de Configuração do Aplicativo, incluindo chave, valor, rótulo, tipo de conteúdo e tags. O arquivo está no formato JSON. Consulte Esquema de arquivo KVSet para obter a especificação do esquema.

O exemplo a seguir é um arquivo baseado no perfil de conteúdo do arquivo KVSet, chamado appconfigdata.json, contendo um sinalizador de recurso, uma referência do Cofre da Chave e um valor de chave regular.

{
  "items": [
    {
      "key": ".appconfig.featureflag/Beta",
      "value": "{\"id\":\"Beta\",\"description\":\"Beta feature\",\"enabled\":true,\"conditions\":{\"client_filters\":[]}}",
      "label": "dev",
      "content_type": "application/vnd.microsoft.appconfig.ff+json;charset=utf-8",
      "tags": {}
    },
    {
      "key": "Database:ConnectionString",
      "value": "{\"uri\":\"https://<your-vault-name>.vault.azure.net/secrets/db-secret\"}",
      "label": "test",
      "content_type": "application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8",
      "tags": {}
    },
    {
      "key": "Logging:LogLevel:Default",
      "value": "Debug",
      "label": "dev",
      "content_type": null,
      "tags": {}
    }
  ]
}

Gorjeta

Se você seguiu o exemplo na seção anterior e tem os dados em sua loja de configuração de aplicativos, pode exportá-los para um arquivo usando o comando CLI:

az appconfig kv export --profile appconfig/kvset --label * --name <your store name> --destination file --path appconfigdata.json --format json 

Depois que o arquivo for exportado, atualize a Beta propriedade do sinalizador enabled de recurso para true e altere o Logging:LogLevel:Default para Debug.

Execute o seguinte comando da CLI com o parâmetro "--profile appconfig/kvset" para importar o arquivo para sua loja de configuração de aplicativos. Não é necessário especificar nenhuma regra de transformação de dados, como separador, rótulo ou tipo de conteúdo, como fez na seção de perfil de conteúdo de arquivo padrão, pois todas as informações já estão no arquivo.

az appconfig kv import --profile appconfig/kvset --name <your store name> --source file --path appconfigdata.json --format json

Nota

O perfil de conteúdo do arquivo KVSet é atualmente suportado em

A tabela a seguir mostra todos os dados importados em sua loja de configuração de aplicativos.

Key valor Etiqueta Tipo do conteúdo
.appconfig.featureflag/Beta {"id":"Beta","description":"Beta feature","enabled":true,"conditions":{"client_filters":[]}} Dev aplicativo/vnd.microsoft.appconfig.ff+json; charset=utf-8
Log:LogLevel:Padrão Debug Dev
Banco de dados:ConnectionString {"uri":"https://< seu-nome-do-cofre.vault.azure.net/secrets/db-secret>"} test application/vnd.microsoft.appconfig.keyvaultref+json; charset=utf-8

Próximos passos