Share via


Azure App Configuration suporte para ficheiros de configuração

Os ficheiros são uma das formas mais comuns de armazenar dados de configuração. Para o ajudar a começar rapidamente, App Configuration tem ferramentas para o ajudar a importar os seus ficheiros de configuração, para que não tenha de escrever os seus dados manualmente. Esta operação é uma migração de dados única se planear gerir os seus dados no App Configuration depois de os importar. Noutros casos, por exemplo, em que adota a configuração como código, pode continuar a gerir os seus dados de configuração em ficheiros e a importá-los como parte do seu processo de CI/CD em simultâneo. Poderá encontrar um destes dois cenários aplicável a si:

  • Mantém o ficheiro de configuração no formato que tinha antes. Este formato é útil se quiser utilizar o ficheiro como a configuração de contingência para a sua aplicação ou a configuração local durante o desenvolvimento. Quando importar o ficheiro de configuração, especifique como pretende que os dados sejam transformados para App Configuration valores-chave. Esta opção é o perfil de conteúdo de ficheiro predefinido no App Configuration ferramentas de importação, como portal, CLI do Azure, tarefa Push do Pipeline do Azure, GitHub Actions, etc.
  • Mantém o ficheiro de configuração no formato que contém todas as propriedades App Configuration chave-valor. Quando importa o ficheiro, não precisa de especificar regras de transformação porque todas as propriedades de um valor-chave já estão no ficheiro. Esta opção chama-se perfil de conteúdo de ficheiro KVSet no App Configuration ferramentas de importação. É útil se pretender gerir todos os seus dados de App Configuration, incluindo valores-chave normais, referências de Key Vault e sinalizadores de funcionalidades, num único ficheiro e importá-los numa só captura.

O resto deste documento irá debater os perfis de conteúdo de ficheiros em detalhe e utilizar a CLI do Azure como exemplo. O mesmo conceito também se aplica a outras ferramentas de importação App Configuration.

Perfil de conteúdo de ficheiro: predefinição

O perfil de conteúdo de ficheiro predefinido nas ferramentas de App Configuration refere-se ao esquema de ficheiro de configuração convencional amplamente adotado por estruturas ou sistemas de programação existentes. App Configuration suporta formatos de ficheiro JSON, Yaml ou Properties.

O exemplo seguinte é um ficheiro de configuração com o nome appsettings.json que contém uma definição de configuração e um sinalizador de funcionalidade.

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

Execute o seguinte comando da CLI para importá-lo para App Configuration com a dev etiqueta e utilize os dois pontos (:) como separador para aplanar o nome da chave. Opcionalmente, pode adicionar o parâmetro "--profile appconfig/default". É ignorado no exemplo, uma vez que é o valor predefinido.

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

Key Vault referências requerem um tipo de conteúdo específico durante a importação, pelo que as mantém num ficheiro separado. O exemplo seguinte é um ficheiro com o nome 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 a test etiqueta e o tipo de conteúdo de referência Key Vault.

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 seguinte mostra todos os dados importados no seu arquivo de App Configuration.

Chave Valor Etiqueta Tipo do conteúdo
.appconfig.featureflag/Beta {"id":"Beta","description":"","enabled":false,"conditions":{"client_filters":[]}} dev application/vnd.microsoft.appconfig.ff+json;charset=utf-8
Registo:LogLevel:Predefinição Aviso dev
Base de Dados:ConnectionString {"uri":"https://< your-vault-name.vault.azure.net/secrets/db-secret>"} test application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8

Perfil de conteúdo de ficheiro: KVSet

O perfil de conteúdo de ficheiro KVSet nas ferramentas de App Configuration refere-se a um esquema de ficheiro que contém todas as propriedades de um App Configuration chave-valor, incluindo chave, valor, etiqueta, tipo de conteúdo e etiquetas. O ficheiro está no formato JSON. Veja Esquema de ficheiro KVSet para obter a especificação de esquema.

O exemplo seguinte é um ficheiro baseado no perfil de conteúdo de ficheiro KVSet, denominado appconfigdata.json, que contém um sinalizador de funcionalidade, uma referência Key Vault e um valor-chave normal.

{
  "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 seguiu o exemplo na secção anterior e tem os dados no seu arquivo de App Configuration, pode exportá-lo para um ficheiro com o comando da CLI:

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

Depois de exportar o ficheiro, atualize a propriedade do sinalizador de funcionalidade para true e altere para Logging:LogLevel:DefaultDebug.enabledBeta

Execute o seguinte comando da CLI com o parâmetro "--profile appconfig/kvset" para importar o ficheiro para o seu arquivo de App Configuration. Não precisa de especificar regras de transformação de dados, como separador, etiqueta ou tipo de conteúdo, como fez na secção de perfil de conteúdo de ficheiro predefinido, porque todas as informações já estão no ficheiro.

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

Nota

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

A tabela seguinte mostra todos os dados importados no seu arquivo de App Configuration.

Chave Valor Etiqueta Tipo do conteúdo
.appconfig.featureflag/Beta {"id":"Beta","description":"Funcionalidade beta", "ativado":true,"conditions":{"client_filters":[]}} dev application/vnd.microsoft.appconfig.ff+json;charset=utf-8
Registo:LogLevel:Predefinição Depurar dev
Base de Dados:ConnectionString {"uri":"https://< your-vault-name.vault.azure.net/secrets/db-secret>"} test application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8

Passos seguintes