Guardado y configuración del servicio Administración de API mediante Git
Artículo
SE APLICA A: Desarrollador | Básico | Estándar | Premium
Importante
A partir del 15 de marzo de 2025, Azure API Management retirará la capacidad de administrar la configuración de la instancia de servicio mediante el repositorio de Git integrado. Si tiene previsto seguir usando un repositorio de Git para administrar la configuración de la instancia de servicio después de la fecha de retirada, actualice la administración de configuración para usar una solución diferente, como APIOps y su propia implementación del repositorio de Git.
Cada instancia del servicio Administración de API mantiene una base de datos de configuración que contiene información sobre la configuración y los metadatos de la instancia del servicio. Es posible hacer cambios en la instancia del servicio; para ello, modifique un valor en Azure Portal con herramientas de Azure como Azure PowerShell o Azure CLI o realice una llamada de API de REST. Pero esto no es todo, puede administrar la configuración de la instancia del servicio con Git, con lo que se posibilitan escenarios como los siguientes:
Control de versiones de configuración: descargue y almacene versiones diferentes de la configuración del servicio
Cambios masivos en la configuración: realice cambios en varios ajustes de la configuración del servicio en el repositorio local e integre los cambios de nuevo en el servidor con una sola operación
Cadena de herramientas y flujo de trabajo familiares de Git: use las herramientas y los flujos de trabajo de Git con los que ya está familiarizado
El diagrama siguiente muestra de forma global los distintos modos de configurar la instancia del servicio de API Management.
Cuando hace cambios en el servicio mediante Azure Portal, las herramientas de Azure como Azure PowerShell, Azure CLI o la API de REST, está administrando la base de datos de configuración del servicio mediante el punto de conexión https://{name}.management.azure-api.net, tal como se muestra en el lado derecho del diagrama. En el lado izquierdo del diagrama se muestra cómo administrar la configuración del servicio mediante Git y el repositorio de Git para el servicio ubicado en https://{name}.scm.azure-api.net.
Los pasos siguientes proporcionan una visión general sobre el proceso de administración de la instancia del servicio de API Management mediante Git.
Acceso a la configuración de Git en el servicio
Guardar la base de datos de configuración del servicio en el repositorio de Git
Clonar el repositorio de Git en el equipo local
Desplegar el repositorio más reciente en el equipo local, y confirmar e insertar los cambios de nuevo en el repositorio
Implementar los cambios desde el repositorio en la base de datos de configuración del servicio
Este artículo describe cómo habilitar y usar Git para administrar la configuración del servicio y sirve como referencia para los archivos y las carpetas del repositorio Git.
Importante
Esta característica está diseñada para trabajar con configuraciones de servicio API Management de pequeñas a medianas, como aquellas con un tamaño exportado inferior a 10 MB o con menos de 10 000 entidades. Los servicios con un gran número de entidades (productos, API, operaciones, esquemas, etc.) pueden experimentar errores inesperados al procesar comandos de Git. Si se producen este tipo de errores, reduzca el tamaño de la configuración del servicio e inténtelo de nuevo. Póngase en contacto con el soporte técnico de Azure si necesita ayuda.
Acceso a la configuración de Git en el servicio
Vaya a la instancia de API Management en Azure Portal.
En el menú de la izquierda, en Implementación e infraestructura, seleccione Repositorio.
Guarde la configuración del servicio en el repositorio de Git
Precaución
Los secretos que no se definan como valores con nombre se almacenarán en el repositorio y permanecerán en su historial. Los valores con nombre proporcionan un lugar seguro para administrar los valores de cadena constante, como los secretos, en toda la configuración y las directivas de API, por lo que no tiene que almacenarlos directamente en las instrucciones de directiva. Para más información, consulte Uso de valores con nombre en las directivas de Azure API Management.
Antes de la clonación del repositorio, guarde el estado actual de la configuración del servicio en el repositorio.
En la página Repositorio, seleccione Guardar en el repositorio.
Realice los cambios deseados en la pantalla de confirmación, como el nombre de la rama para guardar la configuración y seleccione Guardar.
Transcurridos unos segundos, la configuración se guarda y se muestra el estado de configuración del repositorio, incluidas la fecha y la hora del último cambio de configuración y la última sincronización entre la configuración del servicio y el repositorio.
Una vez que la configuración se guarda en el repositorio, se puede clonar.
Para obtener información sobre cómo guardar la configuración del servicio mediante la API de REST, consulte Configuración de inquilinos: Guardar.
Consiga credenciales de acceso
Para clonar un repositorio, además de la dirección URL del repositorio, necesita un nombre de usuario y una contraseña.
Precaución
El uso de credenciales de nombre de usuario y contraseña con un repositorio de Git puede suponer riesgos de seguridad. Almacene la contraseña de forma segura y cámbiela con regularidad. No almacene las credenciales en texto sin formato en el código ni en los archivos de configuración.
En la página Repositorio, seleccione Credenciales de acceso cerca de la parte superior de la página.
Anote el nombre de usuario proporcionado en la página Credenciales de acceso.
Para generar una contraseña, primero asegúrese de que el campo Expiración refleja la fecha y la hora de caducidad deseada y luego seleccione Generar.
Importante
Anote esta contraseña. Una vez que salga de esta página, la contraseña no se volverá a mostrar.
Clonar el repositorio en el equipo local
En los ejemplos siguientes se usa la herramienta Git Bash desde Git para Windows, pero puede usar cualquier herramienta de Git con la que esté familiarizado.
Abra su herramienta Git en la carpeta deseada y ejecute el siguiente comando para clonar el repositorio de Git en el equipo local, usando para ello el comando siguiente:
git clone https://{name}.scm.azure-api.net/
Proporcione el nombre de usuario y la contraseña cuando se le solicite.
Si recibe algún error, pruebe a modificar su comando git clone para incluir el nombre de usuario, como se muestra en el ejemplo siguiente. Proporcione la contraseña cuando se le solicite.
Si esto proporciona un error, pruebe la codificación de la dirección URL de la contraseña y pásela en el comando. Una manera rápida de hacer esto es abrir Visual Studio y emitir el siguiente comando en la Ventana Inmediato. Para abrir la Ventana Inmediato, abra cualquier solución o proyecto en Visual Studio (o cree una aplicación de consola vacía) y elija Ventanas, Inmediato en el menú Depurar.
?System.Net.WebUtility.UrlEncode("password from the Azure portal")
Utilice la contraseña codificada junto con su nombre de usuario y ubicación de repositorio para construir el comando git.
Actualice su repositorio local con la configuración de instancia de servicio más reciente
Si realiza cambios en la instancia del servicio de API Management en Azure Portal o mediante otras herramientas Azure, debe guardar estos cambios en el repositorio para poder actualizar el repositorio local con los cambios más recientes.
Para guardar los cambios mediante el Azure Portal, seleccione Guardar en el repositorio en la pestaña Repositorio de la instancia de API Management.
Entonces, para actualizar su repositorio local:
Asegúrese de que se encuentra en la carpeta del repositorio local. Si acaba de completar el comando git clone, debe cambiar el directorio a su repositorio ejecutando un comando similar al siguiente.
cd {name}.scm.azure-api.net/
En la carpeta del repositorio local, emita el siguiente comando.
git pull
Inserte los cambios desde su repositorio local al repositorio del servidor
Para insertar los cambios desde el repositorio local al repositorio del servidor, debe confirmar los cambios y, a continuación, insertarlos en el repositorio del servidor. Para confirmar los cambios, abra la herramienta de comandos de Git, cambie al directorio del repositorio local y emita los siguientes comandos.
git add --all
git commit -m "Description of your changes"
Para insertar todas las confirmaciones en el servidor, ejecute el siguiente comando.
git push
Implemente los cambios de la configuración del servicio en la instancia del servicio de API Management
Una vez confirmados los cambios locales e insertados en el repositorio del servidor, puede implementarlos en la instancia del servicio Administración de API.
Vaya a la instancia de API Management en Azure Portal.
En el menú de la izquierda, en Implementación e infraestructura, seleccione Repositorio>Implementación a API Management.
En la página Implementar configuración del repositorio, escriba el nombre de la rama que contiene los cambios de configuración deseados y, opcionalmente, seleccione Quitar suscripciones de productos eliminados. Seleccione Guardar.
Referencia de estructura de archivo y carpeta del repositorio local de Git
Los archivos y carpetas del repositorio local de Git contienen la información de configuración acerca de la instancia de servicio.
Elemento
Descripción
carpeta raíz de la administración de API
Contiene la configuración de nivel superior para la instancia de servicio
carpeta apiReleases
Contiene la configuración para las versiones de API de la instancia de servicio
carpeta de API
Contiene la configuración para las API de la instancia de servicio
apiVersionSets folder
Contiene la configuración para el conjunto de versión de las API de la instancia de servicio
carpeta back-ends
Contiene la configuración para las recursos back-end de la instancia de servicio
carpeta de grupos
Contiene la configuración para los grupos de la instancia de servicio
carpeta de directivas
Contiene las directivas de la instancia de servicio
carpeta portalStyles
Contiene la configuración para las personalizaciones del portal para desarrolladores de la instancia de servicio
carpeta portalTemplates
Contiene la configuración para las plantillas del portal para desarrolladores de la instancia de servicio
carpeta de productos
Contiene la configuración para los productos de la instancia de servicio
carpeta de plantillas
Contiene la configuración para las plantillas de correo electrónico de la instancia de servicio
Cada carpeta puede contener uno o varios archivos y, en algunos casos, una o varias carpetas; por ejemplo, una carpeta para cada API, producto o grupo. Los archivos dentro de cada carpeta son específicos del tipo de entidad descrito por el nombre de la carpeta.
Tipo de archivo
Propósito
json
Información de configuración acerca de la entidad correspondiente
html
Descripción de la entidad, a menudo mostrada en el portal para desarrolladores
Xml
Policy statements
css
Hojas de estilo para la personalización del portal para desarrolladores
Estos archivos se pueden crear, eliminar, editar y administrar en el sistema de archivos local, y los cambios se pueden implementar de nuevo en la instancia de servicio de API Management.
Nota
Las siguientes entidades no están en el repositorio de Git y no se pueden configurar mediante Git.
Entidades del portal de desarrolladores distintas de los estilos y plantillas
Fragmentos de directiva
carpeta raíz de la administración de API
La carpeta raíz api-management contiene un archivo configuration.json con información de nivel superior sobre la instancia de servicio en el formato siguiente.
Los primeros cuatro valores (RegistrationEnabled, UserRegistrationTerms, UserRegistrationTermsEnabled y UserRegistrationTermsConsentRequired) se asignan a la siguiente configuración en la pestaña Identidades de la sección Portal para desarrolladores.
Configuración de identidad
Se asigna a
RegistrationEnabled
Presencia del proveedor de identidades Nombre de usuario y contraseña
UserRegistrationTerms
Condiciones de uso del registro de usuario
UserRegistrationTermsEnabled
Mostrar condiciones de uso en la página de registro
UserRegistrationTermsConsentRequired
Requerir consentimiento
RequireUserSigninEnabled
Redirigir a los usuarios anónimos a la página de inicio de sesión
La cuatro valores siguientes (DelegationEnabled, DelegationUrl, DelegatedSubscriptionEnabled y DelegationValidationKey) se asignan a la siguiente configuración en la pestaña Delegación de la sección Portal para desarrolladores.
Configuración de delegación
Se asigna a
DelegationEnabled
Casilla Delegar inicio de sesión y registro
DelegationUrl
Dirección URL del punto de conexión de delegación
DelegatedSubscriptionEnabled
Delegar suscripción de producto
DelegationValidationKey
Delegar clave de validación
El valor final, $ref-policy, se asigna al archivo de instrucciones de directiva global para la instancia de servicio.
carpeta apiReleases
La carpeta apiReleases contiene una carpeta para cada versión de API implementada en una API de producción y contiene los siguientes elementos.
apiReleases\<api release Id>\configuration.json: configuración de la versión, que contiene información sobre las fechas de lanzamiento. Se trata de la misma información que se devolvería si se llamase a la operación Obtener un lanzamiento específico.
carpeta de API
La carpeta apis contiene una carpeta para cada API de la instancia de servicio, que contiene los elementos siguientes.
apis\<api name>\configuration.json: configuración de la API y contiene información acerca de la dirección URL del servicio back-end y las operaciones. Se trata de la misma información que se devolvería si se llamase a la operación Obtener una API específica.
apis\<api name>\api.description.html: descripción de la API, correspondiente a la description propiedad de la entidad de API en la API REST.
apis\<api name>\operations\: esta carpeta contiene archivos <operation name>.description.html que se asignan a las operaciones de la API. Cada archivo contiene la descripción de una única operación en la API, que se asigna a la propiedad description de la entidad de operación en la API de REST.
apiVersionSets folder
La carpeta apiVersionSets contiene una carpeta para cada conjunto de versiones de API creado para una API y contiene los siguientes elementos.
apiVersionSets\<api version set Id>\configuration.json: configuración del conjunto de versiones. Se trata de la misma información que se devolvería si se llamase a la operación Obtener un conjunto de versión específico.
carpeta de grupos
La carpeta groups contiene una carpeta para cada grupo definido en la instancia de servicio.
groups\<group name>\configuration.json: configuración del grupo. Se trata de la misma información que se devolvería si se llamase a la operación Obtener un grupo específico .
groups\<group name>\description.html: descripción del grupo y corresponde a la propiedad description de la entidad de servicio.
carpeta de directivas
La carpeta policies contiene las instrucciones de directiva para la instancia de servicio.
policies\global.xml : contiene las directivas definidas en el ámbito global para la instancia de servicio.
policies\apis\<api name>\: si tiene directivas definidas en el ámbito de la API, se encuentran en esta carpeta.
Carpeta policies\apis\<api name>\<operation name>\: si tiene directivas definidas en el ámbito de la operación, se encuentran en esta carpeta en archivos <operation name>.xml que se asignan a las instrucciones de directiva para cada operación.
policies\products\: si tiene directivas definidas en el ámbito del producto, se encuentran esta carpeta, que contiene archivos <product name>.xml que se asignan a las instrucciones de directiva para cada producto.
carpeta portalStyles
La carpeta portalStyles contiene la configuración y las hojas de estilo para personalizar el portal de desarrolladores en desuso de la instancia de servicio.
portalStyles\configuration.json: contiene los nombres de las hojas de estilos usadas por el portal de desarrolladores
portalStyles\<style name>.css: cada archivo <style name>.css contiene estilos para el portal para desarrolladores (Preview.css y Production.css de forma predeterminada).
carpeta portalTemplates
La carpeta portalTemplates contiene plantillas para personalizar el portal para desarrolladores en desuso de la instancia de servicio.
portalTemplates\<template name>\configuration.json: configuración de la plantilla.
portalTemplates\<template name>\<page name>.html: páginas HTML originales y modificadas de la plantilla.
carpeta de productos
La carpeta products contiene una carpeta para cada producto que se define en la instancia de servicio.
products\<product name>\configuration.json: configuración del producto. Se trata de la misma información que se devolvería si se llamase a la operación Obtener un producto específico .
products\<product name>\product.description.html: descripción del producto y corresponde a la propiedad description de la entidad de producto de la API de REST.
Únase a la serie de reuniones para crear soluciones de inteligencia artificial escalables basadas en casos de uso reales con compañeros desarrolladores y expertos.