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 se transformen los datos en los pares claves-valores de App Configuration. Esta opción es el perfil de contenido del archivo predeterminado en las herramientas de importación de App Configuration como el portal, la CLI de Azure, la tarea de envío de Azure Pipelines, 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 par clave-valor 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 del archivo 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ísticaBeta
atrue
y cambieLogging:LogLevel:Default
aDebug
.
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
- la versión 2.30.0 o posterior de la CLI de Azure.
- Azure App Configuration Push Task versión 3.3.0 o posterior
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 |