Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Una manera común de almacenar datos de configuración es usar archivos. Si quiere usar Azure App Configuration para administrar los datos de configuración, pero actualmente usa archivos, no tiene que escribir los datos manualmente. Puede usar herramientas para importar los archivos de configuración.
Si planea administrar los datos en App Configuration, la operación de importación es una migración de datos de un solo uso. Otra opción es seguir administrando los datos de configuración en archivos e importar los archivos periódicamente como parte del proceso de integración continua y entrega continua (CI/CD). Este caso aparece cuando se adopta la configuración como código.
Hay dos perfiles de contenido de archivo disponibles cuando se usan archivos de configuración:
- El perfil de contenido de archivo predeterminado: el esquema de archivo de configuración convencional
- El perfil de contenido del archivo KVSet: un esquema que contiene todas las propiedades clave-valor de App Configuration
En este artículo se describen ambos perfiles de contenido de archivo. También proporciona ejemplos de importación y exportación de archivos de configuración. Los ejemplos usan la CLI de Azure, pero los conceptos de este artículo también se aplican a otros métodos de importación de App Configuration.
Perfil de contenido del archivo: predeterminado
En las herramientas de App Configuration, el perfil de contenido de archivo predeterminado es el esquema de archivos de configuración convencional que se adopta ampliamente por los sistemas y marcos de programación existentes. Este perfil se usa en herramientas de importación de App Configuration, como el portal de Azure, la CLI de Azure, la tarea de importación de Azure App Configuration en Azure Pipelines, y las acciones de GitHub. App Configuration admite formatos de archivo JSON, YAML y Properties.
Este perfil es útil si desea usar un 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.
El siguiente archivo de configuración, appsettings.json, proporciona un ejemplo del perfil de contenido de archivo predeterminado. Este archivo contiene una configuración y una marca de característica.
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"feature_management": {
"feature_flags": [
{
"id": "Beta",
"enabled": false
}
]
}
}
Para importar este archivo en App Configuration, ejecute el siguiente comando de la CLI de Azure. Aplica una etiqueta dev a la configuración y a la marca de característica, y usa dos puntos (:) como separador para aplanar el nombre de clave.
az appconfig kv import --label dev --separator : --name <App-Configuration-store-name> --source file --path appsettings.json --format json
Opcionalmente, puede agregar el siguiente parámetro al comando anterior: --profile appconfig/default. El parámetro es opcional, ya que el perfil predeterminado es appconfig/default.
Las referencias de Azure Key Vault requieren un tipo de contenido determinado durante la importación. Como resultado, los mantiene en un archivo independiente, como se muestra en el siguiente archivo, keyvault-refs.json:
{
"Database:ConnectionString": {
"uri": "https://<Key-Vault-name>.vault.azure.net/secrets/db-secret"
}
}
Para importar este archivo, ejecute el siguiente comando de la CLI de Azure. Aplica una test etiqueta a la referencia de Key Vault y usa 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 <App-Configuration-store-name> --source file --path keyvault-refs.json --format json
En la tabla siguiente se muestran todos los datos importados en el 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://<Key-Vault-name>.vault.azure.net/secrets/db-secret"} | test | application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8 |
Perfil de contenido del archivo: KVSet
En las herramientas de App Configuration, el perfil de contenido del archivo KVSet es un esquema de archivo que contiene todas las propiedades de un valor de clave de App Configuration. Se incluyen el nombre de clave, su valor, su etiqueta, su tipo de contenido y sus etiquetas. Dado que todas las propiedades de un valor de clave están en el archivo, no es necesario especificar reglas de transformación al importar el archivo.
Al usar el perfil KVSet, puede definir valores de clave normales, referencias de Key Vault y marcas de características en un archivo. Como resultado, este perfil es útil si desea administrar todos los datos de App Configuration en un archivo e importarlo en un solo paso.
Los archivos que usan este perfil están en formato JSON. Para obtener la especificación de esquema, consulte el esquema de archivo KVSet.
El siguiente archivo, appconfigdata.json, se basa en el perfil de contenido del archivo KVSet. Este archivo contiene una marca de característica, una referencia de Key Vault y un valor de clave estándar.
{
"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": {}
}
]
}
En la sección anterior, un ejemplo muestra cómo importar datos en el almacén de App Configuration. Puede exportar esos datos a un archivo mediante el siguiente comando de la CLI de Azure:
az appconfig kv export --profile appconfig/kvset --label * --name <App-Configuration-store-name> --destination file --path appconfigdata.json --format json
Después de exportar el archivo, ábralo en un editor de texto y realice los cambios siguientes:
- Establezca la propiedad
Betade marca de característicasenabledentrue. - Establezca la propiedad
Logging:LogLevel:DefaultenDebug.
Para importar el archivo actualizado en el almacén de App Configuration, ejecute el siguiente comando de la CLI, que incluye el --profile appconfig/kvset parámetro . No es necesario especificar reglas de transformación de datos como un separador, una etiqueta o un tipo de contenido como hizo para el perfil de contenido de archivo predeterminado. Toda la información necesaria ya está en el archivo .
az appconfig kv import --profile appconfig/kvset --name <App-Configuration-store-name> --source file --path appconfigdata.json --format json
Nota:
El perfil de contenido de archivo KVSet se admite actualmente en:
- La CLI de Azure versión 2.30.0 y posteriores.
- La tarea de Importación de Azure App Configuration, versión 10.0.0 y posteriores.
- Azure Portal.
En la tabla siguiente se muestran todos los datos importados en el almacén de App Configuration:
| Clave | Value | Etiqueta | Tipo de contenido |
|---|---|---|---|
| .appconfig.featureflag/Beta | {"id":"Beta","description":"Función Beta","enabled":true,"conditions":{"filtros_cliente":[]}} | dev | application/vnd.microsoft.appconfig.ff+json;charset=utf-8 |
| Logging:LogLevel:Default | Depuración | dev | |
| Database:ConnectionString | {"uri":"https://<Key-Vault-name.vault.azure.net/secrets/db-secret>"} | test | application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8 |