Habilitación del análisis de API en el Centro de API: autoadministrado
En este artículo se explica cómo habilitar el análisis de API en Azure API Center mediante la configuración manual de un motor de linting y desencadenadores. Estas funcionalidades analizan si las definiciones de API cumplen las reglas de estilo de la organización, y generan informes individuales y de resumen. El análisis de API permite identificar y corregir errores comunes e incoherencias en las definiciones de API.
Nota:
En versión preliminar, Azure API Center configura automáticamente un motor de linting predeterminado y dependencias para el análisis de API. Si habilita el análisis autoadministrado como se describe en este artículo, invalida estas características integradas.
Información general del escenario
En este escenario, analizará las definiciones de API en el centro de API mediante el motor de linting de código abierto Spectral. Una aplicación de Azure Functions ejecuta el motor de linting en respuesta a eventos del centro de API. Spectral comprueba que las API definidas en un documento de especificación JSON o YAML cumplan las reglas en una guía de estilo de API personalizable. Se genera un informe de análisis que puede ver en el centro de API.
En el diagrama siguiente se muestran los pasos para habilitar la linting y el análisis en el centro de API.
Implemente una aplicación de Azure Functions que ejecute el motor de linting Spectral en una definición de API.
Configure una suscripción de eventos en un centro de API de Azure para desencadenar la aplicación de funciones.
Un evento se desencadena agregando o reemplazando una definición de API en el centro de API.
Al recibir el evento, la aplicación de funciones invoca el motor de linting Spectral.
El motor de linting comprueba que las API definidas en la definición se ajusten a la guía de estilo de API de la organización y genera un informe.
Vea el informe de análisis en el centro de API.
Opciones para implementar el motor de linting y la suscripción a eventos
En este artículo se proporcionan dos opciones para implementar el motor de linting y la suscripción a eventos en el centro de API:
Implementación automatizada: use Azure Developer CLI (
azd
) para la implementación en un solo paso de la infraestructura de linting. Se recomienda esta opción para un proceso de implementación optimizado.Implementación manual: siga las instrucciones paso a paso para implementar la aplicación de Azure Functions y configurar la suscripción a eventos. Se recomienda esta opción si prefiere implementar y administrar los recursos manualmente.
Limitaciones
- Actualmente, la linting solo admite archivos de especificación JSON o YAML, como documentos de especificación OpenAPI o AsyncAPI.
- De manera predeterminada, el motor de linting usa el conjunto de reglas
spectral:oas
integrado. Para ampliar el conjunto de reglas o crear guías de estilo de API personalizadas, consulte el Repositorio de GitHub de Spectral. - La aplicación de funciones de Azure que invoca la linting se cobra por separado, y usted la administra y mantiene.
Requisitos previos
Un centro de API en la suscripción de Azure. Si aún no ha creado uno, consulte Inicio rápido: Creación del centro de API.
El proveedor de recursos de Event Grid registrado en la suscripción. Si necesita registrar el proveedor de recursos de Event Grid, consulte Suscripción a eventos publicados por un asociado con Azure Event Grid.
Para la CLI de Azure:
Use el entorno de Bash en Azure Cloud Shell. Para más información, consulte Inicio rápido para Bash en Azure Cloud Shell.
Si prefiere ejecutar comandos de referencia de la CLI localmente, instale la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para más información, vea Ejecución de la CLI de Azure en un contenedor de Docker.
Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.
En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para más información sobre las extensiones, consulte Uso de extensiones con la CLI de Azure.
Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
Nota:
Los comandos
az apic
requieren la extensiónapic-extension
CLI de Azure. Si no ha usado comandosaz apic
, la extensión se puede instalar dinámicamente al ejecutar el primer comandoaz apic
o puede instalar la extensión manualmente. Obtenga más información sobre las extensiones de la CLI de Azure.Consulte las notas de la versión para obtener los cambios y actualizaciones más recientes de
apic-extension
.Nota:
Los ejemplos de comandos de la CLI de Azure de este artículo se pueden ejecutar en PowerShell o en un shell de Bash. Cuando sea necesario debido a una sintaxis de variable diferente, se proporcionan ejemplos de comandos independientes para los dos shells.
Implementación de azd
de la aplicación de Azure Functions y suscripción a eventos
En esta sección se proporcionan pasos automatizados mediante Azure Developer CLI para configurar la aplicación de Azure Functions y la suscripción a eventos que habilitan la linting y el análisis en el centro de API. También puede configurar los recursos manualmente.
Otros requisitos previos para esta opción
Ejecución del ejemplo mediante azd
Clone el Repositorio de GitHub y ábralo en Visual Studio Code.
Cambie el directorio a la carpeta
APICenter-Analyzer
del repositorio.En la carpeta
resources/rulesets
, puede encontrar un archivooas.yaml
. Este archivo refleja la guía de estilo de API actual y se puede modificar en función de las necesidades y requisitos de su organización.Autentíquese con Azure Developer CLI y la CLI de Azure mediante los siguientes comandos:
azd auth login az login
Ejecute el comando siguiente para implementar la infraestructura de linting en la suscripción de Azure.
azd up
Siga las indicaciones para proporcionar la información y la configuración de implementación necesarias, como el nombre del entorno y el nombre del centro de API. Para obtener más información, consulte Ejecución del ejemplo mediante Azure Developer CLI (azd).
Nota:
La implementación puede tardar unos minutos.
Una vez completada la implementación, vaya al centro de API en Azure Portal. En el menú de la izquierda, seleccione Eventos>Suscripciones a eventos para ver la suscripción a eventos que se creó.
Ahora puede cargar un archivo de definición de API en el centro de API para desencadenar la suscripción a eventos y ejecutar el motor de linting.
Pasos manuales para configurar la aplicación de Azure Functions y la suscripción a eventos
En esta sección se proporcionan los pasos de implementación manuales para configurar la aplicación a Azure Functions y la suscripción a eventos para habilitar el linting y el análisis en el centro de API. También puede usar Azure Developer CLI para la implementación automatizada.
Otros requisitos previos para esta opción
- Visual Studio Code con la extensión v1.10.4 de Azure Functions o posterior.
Paso 1. Implementación en la aplicación de Azure Functions
Para implementar la aplicación de Azure Functions que ejecuta la función de linting en las definiciones de API:
Clone el Repositorio de GitHub y ábralo en Visual Studio Code.
En la carpeta
resources/rulesets
, puede encontrar un archivooas.yaml
. Este archivo refleja la guía de estilo de API actual y se puede modificar en función de las necesidades y requisitos de su organización.De manera opcional, ejecute la aplicación de funciones localmente para probarla. Para obtener más información, consulte el archivo README en el repositorio.
Implemente la aplicación de funciones en Azure. Para ver los pasos, consulte Inicio rápido: Creación de una función en Azure con TypeScript mediante Visual Studio Code.
Nota:
La implementación de la aplicación de funciones puede tardar unos minutos.
Inicie sesión en Azure Portal y vaya a la aplicación de funciones.
En la página Información general, compruebe los detalles siguientes:
- Confirme que el Estado de la aplicación de funciones sea En ejecución.
- En Funciones, confirme que el Estado de la función apicenter-analyzer sea Habilitado.
Paso 2. Configuración de la identidad administrada en la aplicación de funciones
Para permitir que la aplicación de funciones acceda al centro de API, configure una identidad administrada para la aplicación de funciones. En los pasos siguientes se muestra cómo habilitar y configurar una identidad administrada asignada por el sistema para la aplicación de funciones mediante Azure Portal o la CLI de Azure.
- En Azure Portal, vaya a la aplicación de funciones y seleccione Identidad en la sección Configuración.
- En la pestaña Sistema asignado, cambie el Estado a Habilitado y, a continuación, seleccione Guardar.
Ahora que la identidad administrada está habilitada, asígnele el rol Administrador de cumplimiento del Centro de API de Azure para acceder al centro de API.
- En Azure Portal, vaya al centro de API y seleccione Control de acceso (IAM).
- Seleccione + Agregar > Agregar asignación de roles.
- Seleccione roles de función de trabajo y, a continuación, seleccione Administrador de cumplimiento de Centro de API de Azure. Seleccione Siguiente.
- En la página Miembros, en Asignar acceso a, seleccione Identidad administrada > + Seleccionar miembros.
- En la página Seleccionar identidades administradas, busque y seleccione la identidad administrada de la aplicación de funciones. Haga clic en Seleccionar y, a continuación, en Siguiente.
- Revise la asignación de roles y seleccione Revisar y asignar.
Paso 3. Configuración de la suscripción de eventos en el centro de API
Ahora cree una suscripción de eventos en el centro de API para desencadenar la aplicación de funciones cuando se cargue o actualice un archivo de definición de API. En los pasos siguientes se muestra cómo crear la suscripción de eventos mediante Azure Portal o la CLI de Azure.
En Azure Portal, vaya al centro de API y seleccione Eventos.
En la pestaña Comenzar, seleccione Azure Function.
En la página Crear suscripción de eventos, realice los siguientes pasos:
Escriba un Nombre descriptivo para la suscripción de eventos y seleccione Esquema de Event Grid.
En Detalles del tema, escriba un Nombre de tema del sistema que prefiera.
En Tipos de eventos, seleccione los siguientes eventos:
- Definición de API agregada
- Definición de API actualizada
En Detalles del punto de conexión, seleccione Función de Azure > Configurar un punto de conexión.
En la página Seleccionar función de Azure, seleccione la aplicación de funciones y la función apicenter-linter que configuró. Haga clic en Confirmar selección.
Seleccione Crear.
Seleccione la pestaña Suscripciones de eventos y seleccione Actualizar. Confirme que el Estado de aprovisionamiento de la suscripción de eventos sea Correcto.
Nota:
La suscripción a eventos puede tardar un breve tiempo en propagarse a la aplicación de funciones.
Desencadenamiento de eventos en el centro de API
Para probar la suscripción de eventos, pruebe a cargar o actualizar un archivo de definición de API asociado a una versión de API en el centro de API. Por ejemplo, cargue un documento OpenAPI o AsyncAPI. Una vez desencadenada la suscripción de eventos, la aplicación de funciones invoca el motor de linting de API para analizar la definición de la API.
- Para obtener pasos detallados para agregar una API, una versión de API y una definición de API al centro de API, consulte Tutorial: Registro de API en el centro de API.
- Para crear una API mediante la carga de un archivo de definición de API mediante la CLI de Azure, consulte Registro de API desde un archivo de especificación.
Para confirmar que se desencadenó la suscripción de eventos:
Vaya al centro de API y seleccione Eventos en el menú de la izquierda.
Seleccione la pestaña Suscripciones de eventos y seleccione la suscripción de eventos de la aplicación de funciones.
Revise las métricas para confirmar que se desencadenó la suscripción de eventos y que la linting se invocó correctamente.
Nota:
Las métricas pueden tardar unos minutos en aparecer.
Después de analizar la definición de API, el motor de linting genera un informe basado en la guía de estilo de API configurada.
Visualización de informes de análisis de API
Puede ver el informe de análisis de la definición de API en Azure Portal. Después de analizar una definición de API, el informe enumera los errores, las advertencias y la información en función de la guía de estilo de API configurada.
En el portal, también puede ver un resumen de los informes de análisis de todas las definiciones de API del centro de API.
Informe de análisis de una definición de API
Para ver el informe de análisis de una definición de API en el centro de API:
- En el portar, vaya a la versión de la API en el centro de API donde agregó o actualizó una definición de API.
- En el menú de la izquierda, en Detalles, seleccione Definiciones.
- Seleccione la definición de API que cargó o actualizó.
- Seleccione la pestaña Análisis.
Se abre el Informe de análisis de API y muestra la definición de API y los errores, las advertencias y la información en función de la guía de estilo de API configurada. En la captura de pantalla siguiente se muestra un ejemplo de un informe de análisis de API.
Resumen del análisis de API
Para ver un resumen de los informes de análisis de todas las definiciones de API en el centro de API:
En el portal, vaya al centro de API.
En el menú de la izquierda, en Gobernanza, seleccione Análisis de API. Aparece el resumen.
Contenido relacionado
Obtener más información sobre Event Grid: