Importación de WebSocket API
SE APLICA A: Desarrollador | Básico | Básico v2 | Estándar | Estándar v2 | Premium
Con la solución de API WebSocket de API Management, los publicadores de API pueden agregar rápidamente una API de WebSocket en API Management a través de Azure Portal, la CLI de Azure, Azure PowerShell y otras herramientas de Azure.
Oharra
Actualmente esta característica no está disponible en las áreas de trabajo.
Puede proteger las API de WebSocket aplicando las directivas de control de acceso existentes, como la validación de JWT. También puede probar las API de WebSocket mediante las consolas de prueba de las API en Azure Portal y el portal para desarrolladores. A través de las funcionalidades de observabilidad existentes, API Management proporciona métricas y registros para supervisar y solucionar problemas de las API de WebSocket.
En este artículo:
- Comprenderá el flujo de tráfico de Websocket.
- Agregará una API de WebSocket a la instancia de API Management.
- Probará la API de WebSocket.
- Visualizará las métricas y los registros de la API de WebSocket.
- Conocerá las limitaciones de la API de WebSocket.
- Tener una instancia de API Management existente. Cree una suscripción si todavía no lo ha hecho.
- Una API de WebSocket.
- Azure CLI
API Management admite el tráfico de WebSocket.
Durante el tráfico de WebSocket, la aplicación cliente establece una conexión de WebSocket con la puerta de enlace de API Management, que a su vez establece una conexión con los servicios back-end correspondientes. A continuación, API Management envía mediante proxy los mensajes entre cliente y servidor de WebSocket.
- La aplicación cliente envía una solicitud de protocolo de enlace WebSocket a la puerta de enlace de APIM al invocar la operación onHandshake.
- La puerta de enlace de APIM envía una solicitud de protocolo de enlace WebSocket al servicio back-end correspondiente.
- El servicio back-end actualiza una conexión a WebSocket.
- La puerta de enlace de APIM actualiza la conexión correspondiente a WebSocket.
- Una vez establecido el par de conexión, APIM gestionará los mensajes entre la aplicación cliente y el servicio back-end.
- La aplicación cliente envía un mensaje a la puerta de enlace de APIM.
- La puerta de enlace de APIM reenvía el mensaje al servicio back-end.
- El servicio back-end envía un mensaje a la puerta de enlace de APIM.
- La puerta de enlace de APIM reenvía el mensaje a la aplicación cliente.
- Cuando cualquiera de los lados se desconecta, APIM termina la conexión correspondiente.
Oharra
Las conexiones del cliente y del back-end constan de una asignación uno a uno.
Según el protocolo WebSocket, cuando una aplicación cliente intenta establecer una conexión WebSocket con un servicio back-end, primero enviará una solicitud de protocolo de enlace de apertura. Cada API de WebSocket en API Management tiene una operación onHandshake. La operación onHandshake es una operación del sistema inmutable, que no se puede eliminar y que se crea automáticamente. La operación onHandshake permite a los publicadores de API interceptar estas solicitudes de protocolo de enlace y aplicarles las directivas de API Management.
-
- Vaya a la instancia de API Management en Azure Portal.
En el menú izquierdo, seleccione API>+Agregar API.
En Definir una nueva API, seleccione WebSocket.
En el cuadro de diálogo, seleccione Completo y rellene los campos necesarios del formulario.
Campo Description Nombre para mostrar Nombre con el que se mostrará la API de WebSocket. Nombre Nombre sin procesar de la API de WebSocket. Se rellena automáticamente a medida que escribe el nombre para mostrar. URL de WebSocket Dirección URL base con el nombre de WebSocket. Por ejemplo: ws://example.com/nombre_del_socket Esquema URL Acepte el valor predeterminado. Sufijo de dirección URL de API Agregue un sufijo de URL para identificar esta API específica en esta instancia de API Management. Debe ser exclusivo en esta instancia de APIM. Productos Asocie la API de WebSocket a un producto para publicarla. Puertas de enlace Asocie la API de WebSocket a las puertas de enlace existentes. Haga clic en Crear.
Navegue hasta la API de WebSocket.
En la API de WebSocket, seleccione la operación onHandshake.
Seleccione la pestaña Prueba para acceder a la consola Prueba.
Opcionalmente, proporcione los parámetros de cadena de consulta necesarios para el protocolo de enlace WebSocket.
Haga clic en Conectar.
Vea el estado de la conexión en Salida.
Escriba el valor en Carga.
Haga clic en Enviar.
Vea los mensajes recibidos en Salida.
Repita los pasos anteriores para probar diferentes cargas.
Cuando se complete la prueba, seleccione Desconectar.
Use características estándar de API Management y Azure Monitor para supervisar las API de WebSocket:
- Visualización de métricas de API en Azure Monitor
- Opcionalmente, habilite la configuración de diagnóstico para recopilar y ver los registros de puerta de enlace de API Management, que incluyen operaciones de API de WebSocket.
Por ejemplo, en la siguiente captura de pantalla se muestran las respuestas recientes de la API de WebSocket con código 101
de la tabla 101
. Estos resultados indican el cambio correcto de las solicitudes de TCP al protocolo WebSocket.
A continuación se muestran las restricciones actuales de compatibilidad con WebSocket en API Management:
- Las API de WebSocket no se admiten aún en el nivel de consumo.
- Las API WebSocket admiten los siguientes tipos de búferes válidos para mensajes: Close, BinaryFragment, BinaryMessage, UTF8Fragment y UTF8Message.
- Actualmente, la directiva de establecimiento de encabezado no admite el cambio de ciertos encabezados conocidos, incluidos los encabezados
Host
, en las solicitudes onHandshake. - Durante el handshake TLS con un backend WebSocket, la API Management valida que el certificado del servidor sea de confianza y que su nombre de sujeto coincida con el nombre del host. Con las API de HTTP, API Management valida que el certificado es de confianza, pero no valida que el nombre de host y el asunto coincidan.
Para conocer los límites de conexión de WebSocket, consulte límites de API Management.
Las siguientes directivas no son compatibles con la operación onHandshake y no se pueden aplicar a ella:
- Similar respuesta
- Obtención desde memoria caché
- Almacenar en caché
- Permitir llamadas entre dominios
- CORS
- JSONP
- Establecimiento de método de solicitud
- Establecer cuerpo
- Convertir XML a JSON
- Convertir JSON a XML
- Transformar XML mediante XSLT
- Validar contenido
- Validación de parámetros
- Validación de encabezados
- Validación de código de estado
Oharra
Si aplicó las directivas en ámbitos superiores (es decir, a nivel global o de producto) y una API WebSocket las heredó mediante la directiva, se omitirán en tiempo de ejecución.
- Limitaciones de importación de API
- Importación de una especificación de OpenAPI
- Importación de una API de SOAP
- Importación de API de SOAP y conversión en REST
- Importación de App Service API
- Importación de una aplicación de contenedor de Azure como una API
- Importación de WebSocket API
- Importación de GraphQL API
- Importación de un esquema GraphQL y configuración de solucionadores de campos
- Importación de una aplicación de Azure Function App
- Importación de una aplicación lógica de Azure.
- Importación de un servicio Service Fabric
- Importación de una API de Azure OpenAI
- Importación de una API de OData
- Importación de metadatos de SAP OData
- Importación de una API de gRPC
- Edición de una API