Suporte à Configuração de Aplicativos 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 de Aplicativos tem ferramentas para ajudá-lo a importar seus arquivos de configuração para que você não precise digitar seus dados manualmente. Essa operação é uma migração de dados única se você planeja gerenciar seus dados na Configuração de Aplicativos depois de importá-los. Em alguns outros casos, por exemplo, em que você adota a configuração como código, você pode continuar gerenciando seus dados de configuração em arquivos e importá-los como parte do processo de CI/CD de forma recorrente. Você pode encontrar um destes dois cenários que se aplica a você:

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

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

Perfil do conteúdo do arquivo: padrão

O perfil padrão do conteúdo do arquivo nas ferramentas da Configuração de Aplicativos se refere ao esquema convencional de arquivo de configuração convencional amplamente adotado por estruturas ou sistemas de programação existentes. A Configuração de Aplicativos é compatível com os formatos de arquivo JSON, YAML ou painel Propriedades.

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

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

Execute o comando da CLI a seguir para importá-lo para a Configuração de Aplicativos com o rótulo dev e use os dois-pontos (:) como separadores para mesclar 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 Key Vault exigem um tipo de conteúdo específico durante a importação e, portanto, você deve mantê-las 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 rótulo test, o separador de dois-pontos (:) e o tipo de conteúdo da referência do Key Vault.

az appconfig kv import --label test --separator : --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 no seu repositório da Configuração de Aplicativos.

Chave Valor Rótulo Tipo de conteúdo
.appconfig.featureflag/Beta {"id":"Beta","description":"","enabled":false,"conditions":{"client_filters":[]}} desenvolvimento application/vnd.microsoft.appconfig.ff+json;charset=utf-8
Logging:LogLevel:Default Aviso desenvolvimento
Database:ConnectionString "{"uri":"https://<your-vault-name>.vault.azure.net/secrets/db-secret"}" test application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8

Perfil do conteúdo do arquivo: KVSet

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

O exemplo a seguir é um arquivo baseado no perfil KVSet do conteúdo do arquivo, chamadoappconfigdata.json, que contém um sinalizador de recurso, uma referência do Key Vault e uma chave-valor 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": {}
    }
  ]
}

Dica

Se tiver seguido o exemplo na seção anterior e tiver os dados no repositório da Configuração de Aplicativos, você poderá exportá-los para um arquivo usando o comando da 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 propriedade enabled do sinalizador de recurso Beta para true e altere Logging:LogLevel:Default para Debug.

Execute o seguinte comando da CLI com o parâmetro "--profile appconfig/kvset" a fim de importar o arquivo para o repositório da Configuração de Aplicativos. Você não precisa especificar nenhuma regra de transformação de dados, como separador, rótulo ou tipo de conteúdo, como fez na seção do perfil padrão do conteúdo do arquivo porque 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

Observação

Atualmente, o perfil de conteúdo do arquivo KVSet tem suporte em

A tabela a seguir mostra todos os dados importados no seu repositório da Configuração de Aplicativos.

Chave Valor Rótulo Tipo de conteúdo
.appconfig.featureflag/Beta {"id":"Beta","description":"Beta feature","enabled":true,"conditions":{"client_filters":[]}} desenvolvimento application/vnd.microsoft.appconfig.ff+json;charset=utf-8
Logging:LogLevel:Default Depurar desenvolvimento
Database:ConnectionString "{"uri":"https://<your-vault-name>.vault.azure.net/secrets/db-secret"}" test application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8

Próximas etapas