Partilhar via


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

Uma maneira comum de armazenar dados de configuração é usar arquivos. Se você quiser usar a Configuração do Aplicativo do Azure para gerenciar seus dados de configuração, mas atualmente usa arquivos, não é necessário inserir seus dados manualmente. Você pode usar ferramentas para importar seus arquivos de configuração.

Se você planeja gerenciar seus dados na Configuração do aplicativo, a operação de importação é uma migração de dados única. Outra opção é continuar a gerir os seus dados de configuração em ficheiros e importar os ficheiros recorrentemente como parte do seu processo de integração contínua e entrega contínua (CI/CD). Este caso surge quando você adota a configuração como código.

Dois perfis de conteúdo de arquivo estão disponíveis quando você usa arquivos de configuração:

  • O perfil de conteúdo de arquivo padrão: O esquema de arquivo de configuração convencional
  • O perfil de conteúdo do arquivo KVSet: um esquema que contém todas as propriedades de chave-valor da Configuração do Aplicativo

Este artigo discute ambos os perfis de conteúdo de arquivo. Ele também fornece exemplos de importação e exportação de arquivos de configuração. Os exemplos usam a CLI do Azure, mas os conceitos neste artigo também se aplicam a outros métodos de importação de Configuração de Aplicativo.

Perfil de conteúdo do arquivo: padrão

Nas ferramentas de Configuração de Aplicativos, o perfil de conteúdo de arquivo padrão é o esquema de arquivo de configuração convencional que é amplamente adotado por estruturas e sistemas de programação existentes. Esse perfil é usado em ferramentas de importação de Configuração de Aplicativo, como o portal do Azure, a CLI do Azure, a tarefa de Importação de Configuração de Aplicativo do Azure no Azure Pipelines e as Ações do GitHub. A Configuração do Aplicativo suporta os formatos de arquivo JSON, YAML e Propriedades.

Esse perfil é útil se você quiser usar um 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, você especifica como deseja que os dados sejam transformados em valores-chave de Configuração do Aplicativo e sinalizadores de recursos.

O seguinte arquivo de configuração, appsettings.json, fornece um exemplo do perfil de conteúdo de arquivo padrão. Este ficheiro contém uma definição de configuração e uma flag de funcionalidade.

{
    "Logging": {
        "LogLevel": {
            "Default": "Warning"
        }
    },
    "feature_management": {
        "feature_flags": [
            {
                "id": "Beta",
                "enabled": false
            }
        ]
    }
}

Para importar esse arquivo para a Configuração do Aplicativo, execute o seguinte comando da CLI do Azure. Ele aplica um dev rótulo à configuração e ao sinalizador de recurso, e usa dois pontos (:) como separador para nivelar o nome da chave.

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

Opcionalmente, você pode adicionar o seguinte parâmetro ao comando anterior: --profile appconfig/default. O parâmetro é opcional, porque o perfil padrão é appconfig/default.

As referências do Azure Key Vault exigem um tipo de conteúdo específico durante a importação. Como resultado, você mantê-los em um arquivo separado, como mostrado no seguinte arquivo, keyvault-refs.json:

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

Para importar esse arquivo, execute o seguinte comando da CLI do Azure. Aplica um rótulo test à referência do Cofre de Chaves e usa o tipo de conteúdo de referência do Cofre de Chaves.

az appconfig kv import --label test --content-type "application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8" --name <App-Configuration-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://<Key-Vault-name.vault.azure.net/secrets/db-secret>"} testar application/vnd.microsoft.appconfig.keyvaultref+json; charset=utf-8

Perfil de conteúdo do arquivo: KVSet

Nas ferramentas de Configuração de Aplicativos, o perfil de conteúdo do arquivo KVSet é um esquema de arquivo que contém todas as propriedades de um valor-chave de Configuração de Aplicativo. Estão incluídos o nome da chave, seu valor, seu rótulo, seu tipo de conteúdo e suas tags. Como todas as propriedades de um valor-chave estão no arquivo, não é necessário especificar regras de transformação ao importar o arquivo.

Ao usar o perfil KVSet, você pode definir valores de chave regulares, referências do Cofre de Chaves e sinalizadores de recursos em um arquivo. Como resultado, esse perfil é útil se você quiser gerenciar todos os dados de configuração do aplicativo em um arquivo e importá-los em uma etapa.

Os arquivos que usam esse perfil estão no formato JSON. Para obter a especificação do esquema, consulte o esquema do arquivo KVSet.

O seguinte ficheiro, appconfigdata.json, baseia-se no perfil de conteúdo do ficheiro KVSet. Esse arquivo contém um sinalizador de recurso, uma referência do Cofre da Chave e um valor de chave padrão.

{
  "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://<Key-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": {}
    }
  ]
}

Na seção anterior, um exemplo mostra como importar dados para sua loja de configuração de aplicativos. Você pode exportar esses dados para um arquivo usando o seguinte comando da CLI do Azure:

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

Depois de exportar o arquivo, abra-o em um editor de texto e faça as seguintes alterações:

  • Defina a propriedade Beta do sinalizador de recurso enabled para true.
  • Defina a propriedade Logging:LogLevel:Default como Debug.

Para importar o arquivo atualizado para sua loja de configuração de aplicativos, execute o seguinte comando da CLI, que inclui o --profile appconfig/kvset parâmetro. Você não precisa especificar regras de transformação de dados, como um separador, rótulo ou tipo de conteúdo, como fez para o perfil de conteúdo de arquivo padrão. Todas as informações necessárias já estão no arquivo.

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

Nota

O perfil de conteúdo do arquivo KVSet é suportado atualmente 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://<Key-Vault-name.vault.azure.net/secrets/db-secret>"} testar application/vnd.microsoft.appconfig.keyvaultref+json; charset=utf-8

Próximos passos