Compartir vía


Compatibilidad de Azure App Configuration con archivos de configuración

Los archivos son una de las formas más comunes de almacenar datos de configuración. Para ayudarle a empezar rápidamente, App Configuration tiene herramientas que le permiten importar los archivos de configuración, por lo que no tiene que escribir los datos manualmente. Esta operación es una migración de datos única si planea administrar los datos en App Configuration después de importarlos. En algunos otros casos, por ejemplo, en los que adopta la configuración como código, puede seguir administrando los datos de configuración en archivos e importarlos como parte del proceso de CI/CD de forma recurrente. Es posible que uno de estos dos escenarios se aplique en su caso:

  • El archivo de configuración se mantiene en el formato que tenía antes. Este formato es útil si desea usar el archivo como configuración de reserva para la aplicación o la configuración local durante el desarrollo. Al importar el archivo de configuración, especifique cómo desea que los datos se transformen en valores clave-valores de clave y marcas de características de App Configuration. Esta opción es el perfil de contenido de archivo predeterminado en App Configuration importando herramientas como portal, CLI de Azure, tarea de importación de canalizaciones de Azure, Acciones de GitHub, etc.
  • El archivo de configuración se mantiene en el formato que contiene todas las propiedades del par clave-valor de App Configuration. Al importar el archivo, no es necesario especificar ninguna regla de transformación porque todas las propiedades de un valor de clave ya están en el archivo. Esta opción se denomina perfil de contenido del archivo KVSet en las herramientas de importación de App Configuration. Resulta útil si desea administrar todos los datos de App Configuration, incluidos los pares claves-valores normales, las referencias de Key Vault y las marcas de características, en un solo archivo e importarlos en una única emisión.

En el resto de este documento se describen los perfiles de contenido de archivos en detalle y se usa la CLI de Azure como ejemplo. El mismo concepto se aplica también a otras herramientas de importación de App Configuration.

Perfil de contenido del archivo: predeterminado

El perfil de contenido del archivo predeterminado en las herramientas de App Configuration hace referencia al esquema del archivo de configuración convencional ampliamente adoptado por los sistemas o marcos de programación existentes. App Configuration admite formatos de archivos JSON, Yaml o de propiedades.

El ejemplo siguiente es un archivo de configuración denominado appsettings.json que contiene una configuración y una marca de característica.

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

Ejecute el siguiente comando de la CLI para importarlo a App Configuration con la etiqueta dev y utilice los dos puntos (:) como separador para acoplar el nombre de la clave. Opcionalmente, puede agregar el parámetro "--profile appconfig/default". Se omite en el ejemplo, ya que es el valor predeterminado.

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

Las referencias de Key Vault requieren un tipo de contenido determinado durante la importación, por lo que los mantiene en un archivo independiente. El ejemplo siguiente es un archivo llamado keyvault-refs.json.

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

Ejecute el siguiente comando de la CLI para importarlo con la etiqueta test y el tipo de contenido de referencia de 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

En la tabla siguiente se muestran todos los datos importados del almacén de App Configuration.

Clave Value Etiqueta Tipo de contenido
.appconfig.featureflag/Beta {"id":"Beta","description":"","enabled": false,"conditions":{"client_filters":[]}} dev application/vnd.microsoft.appconfig.ff+json;charset=utf-8
Logging:LogLevel:Default Advertencia dev
Database:ConnectionString {"uri":"https://<your-vault-name>.vault.azure.net/secrets/db-secret"} test application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8

Perfil de contenido del archivo: KVSet

El perfil de contenido del archivo KVSet de las herramientas de App Configuration hace referencia a un esquema de archivo que contiene todas las propiedades de un par clave-valor de App Configuration, incluidos la clave, el valor, la etiqueta, el tipo de contenido y las etiquetas. El archivo está en formato JSON. Consulte el artículo sobre el esquema del archivo KVSet para obtener la especificación del esquema.

El ejemplo siguiente es un archivo basado en el perfil de contenido del archivo KVSet, denominado appconfigdata.json, que contiene una marca de característica, una referencia de Key Vault y un par clave-valor 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": {}
    }
  ]
}

Sugerencia

Si ha seguido el ejemplo de la sección anterior y tiene los datos en el almacén de App Configuration, puede exportarlos a un archivo mediante el comando de la CLI:

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

Una vez exportado el archivo, actualice la propiedad enabled de la marca de característica Beta a true y cambie Logging:LogLevel:Default a Debug.

Ejecute el siguiente comando de la CLI con el parámetro "--profile appconfig/kvset" para importar el archivo al almacén de App Configuration. No es necesario especificar ninguna regla de transformación de datos, como un separador, etiqueta o tipo de contenido como ha hecho en la sección del perfil de contenido del archivo predeterminado porque toda la información ya está en el archivo.

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

Nota:

El perfil de contenido del archivo KVSet se admite actualmente en

En la tabla siguiente se muestran todos los datos importados del almacén de App Configuration.

Clave Value Etiqueta Tipo de contenido
.appconfig.featureflag/Beta {"id":"Beta","description":"Beta feature","enabled":true,"conditions":{"client_filters":[]}} dev application/vnd.microsoft.appconfig.ff+json;charset=utf-8
Logging:LogLevel:Default Depurar dev
Database:ConnectionString {"uri":"https://<your-vault-name>.vault.azure.net/secrets/db-secret"} test application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8

Pasos siguientes