Configuración de Spring Cloud Gateway para VMware
Nota:
Los planes de Básico, Estándar y Enterprise quedarán en desuso a partir de mediados de marzo de 2025, con un período de retiro de 3 años. Se recomienda realizar la transición a Azure Container Apps. Para más información, consulte el anuncio de retirada de Azure Spring Apps.
El plan de consumo estándar y dedicado quedará obsoleto a partir del 30 de septiembre de 2024, con un cierre completo al cabo de seis meses. Se recomienda realizar la transición a Azure Container Apps. Para obtener más información, consulte Migrar el plan de consumo y dedicado Azure Spring Apps Standard a Azure Container Apps.
Este artículo se aplica a: ❎ Basic/Standard ✅ Enterprise
En este artículo se muestra cómo configurar VMware Spring Cloud Gateway para VMware Tanzu con el plan Enterprise de Azure Spring Apps.
Spring Cloud Gateway para VMware es un componente comercial de VMware Tanzu basado en el proyecto de código abierto Spring Cloud Gateway. VMware Spring Cloud Gateway para Tanzu controla los problemas transversales de los equipos de desarrollo de API, como el inicio de sesión único (SSO), el control de acceso, la limitación de velocidad, la resistencia y la seguridad. Puede acelerar la entrega de API mediante patrones nativos de nube modernos en la elección del lenguaje de programación para el desarrollo de API.
Una instancia de VMware Spring Cloud Gateway enruta el tráfico según las reglas. Admite el escalado y la reducción horizontales y el escalado y la reducción verticales para satisfacer la carga dinámica del tráfico.
Spring Cloud Gateway para VMware incluye las siguientes características:
- Configuración de enrutamiento dinámico, independiente de las aplicaciones individuales, que puede aplicar y cambiar sin volver a compilar
- Filtros comerciales de rutas de API para transportar notificaciones de JSON Web Token (JWT) autorizadas a servicios de aplicación
- Autorización de certificados de cliente
- Enfoques que limitan la velocidad
- Configuración de disyuntores
- Compatibilidad con el acceso a los servicios de aplicación a través de credenciales de autenticación HTTP básica
Para realizar la integración con el portal de API para VMware Tanzu, VMware Spring Cloud Gateway genera automáticamente la documentación de OpenAPI versión 3 después de cualquier adición o cambio en la configuración de ruta. Para obtener más información, consulte Uso del portal de API para VMware Tanzu.
Requisitos previos
- Una instancia de servicio del plan Enterprise de Azure Spring Apps ya aprovisionada y habilitada con Spring Cloud Gateway para VMware. Para más información, consulte Inicio rápido: Compilación e implementación de aplicaciones en Azure Spring Apps con el plan Enterprise.
- CLI de Azure, versión 2.0.67 o posterior. Use el siguiente comando para instalar la extensión de Azure Spring Apps:
az extension add --name spring
.
Habilitación o deshabilitación de VMware Spring Cloud Gateway
Puede habilitar o deshabilitar VMware Spring Cloud Gateway después de crear la instancia de servicio mediante Azure Portal o la CLI de Azure. Antes de deshabilitar VMware Spring Cloud Gateway, debe anular la asignación de su punto de conexión y quitar todas las configuraciones de ruta.
Siga estos pasos para habilitar o deshabilitar VMware Spring Cloud Gateway mediante Azure Portal:
- Vaya al recurso de servicio y seleccione Spring Cloud Gateway.
- Seleccione Administrar.
- Active o desactive la casilla Habilitar puerta de enlace de Spring Cloud y, a continuación, seleccione Guardar.
Ahora puede ver el estado de Spring Cloud Gateway en la página de Spring Cloud Gateway.
Reinicio de VMware Spring Cloud Gateway
Después de completar la acción de reinicio, las instancias de VMware Spring Cloud Gateway se reinician de forma gradual.
Siga estos pasos para reiniciar VMware Spring Cloud Gateway mediante Azure Portal:
- Vaya al recurso de servicio y seleccione Spring Cloud Gateway.
- Seleccione Reiniciar.
- Seleccione Aceptar para confirmar el reinicio.
Asignación de un punto de conexión público a VMware Spring Cloud Gateway
En esta sección se describe cómo asignar un punto de conexión público a VMware Spring Cloud Gateway y configurar sus propiedades.
Para asignar un punto de conexión en Azure Portal, siga estos pasos:
- Abra la instancia de Azure Spring Apps.
- Seleccione Spring Cloud Gateway en el panel de navegación y, a continuación, seleccione Información general.
- Establezca Asignar punto de conexión en Sí.
Después de unos minutos, dirección URL muestra la dirección URL del punto de conexión configurado. Guárdela para usarla más adelante.
Configuración de los metadatos de Spring Cloud Gateway para VMware
Los metadatos de VMware Spring Cloud Gateway generan automáticamente la documentación de OpenAPI versión 3. Puede configurar metadatos de VMware Spring Cloud Gateway para mostrar grupos de rutas en el portal de API para VMware Tanzu. Para obtener más información, consulte Uso del portal de API para VMware Tanzu.
En la siguiente tabla se describen las opciones de metadatos disponibles:
Propiedad | Descripción |
---|---|
title |
Título que describe el contexto de las API disponibles en la instancia de VMware Spring Cloud Gateway. El valor predeterminado es Spring Cloud Gateway for K8S . |
description |
Descripción detallada de las API disponibles en la instancia de VMware Spring Cloud Gateway. El valor predeterminado es Generated OpenAPI 3 document that describes the API routes configured for '[Gateway instance name]' Spring Cloud Gateway instance deployed under '[namespace]' namespace.*. |
documentation |
Ubicación de la documentación de API que está disponible en la instancia de VMware Spring Cloud Gateway. |
version |
La versión de las API disponibles en esta instancia de VMware Spring Cloud Gateway. El valor predeterminado es unspecified . |
serverUrl |
Dirección URL base para acceder a las API en la instancia de VMware Spring Cloud Gateway. Esta propiedad es obligatoria si desea integrar con el portal de API. |
Puede usar Azure Portal o la CLI de Azure para editar las propiedades de metadatos.
Para editar metadatos en Azure Portal, siga estos pasos:
- Abra la instancia de Azure Spring Apps.
- Seleccione Spring Cloud Gateway en el panel de navegación y, a continuación, seleccione Configuración.
- Especifique los valores de las propiedades enumeradas para API.
- Seleccione Guardar.
Configuración del inicio de sesión único
VMware Spring Cloud Gateway admite la autenticación y autorización mediante el inicio de sesión único (SSO) con un proveedor de identidades de OpenID. El proveedor admite el protocolo OpenID Connect Discovery. En la siguiente tabla se describen las propiedades de SSO:
Propiedad | ¿Necesario? | Descripción |
---|---|---|
issuerUri |
Sí | El identificador URI que se afirma como identificador del emisor. Por ejemplo, si issuerUri es https://example.com , se realiza una solicitud de configuración del proveedor OpenID a https://example.com/.well-known/openid-configuration . Se espera que el resultado sea una respuesta de configuración del proveedor de OpenID. |
clientId |
Sí | Identificador de cliente de OpenID Connect del proveedor de identidades. |
clientSecret |
Sí | Secreto de cliente de OpenID Connect del proveedor de identidades. |
scope |
Sí | Lista de ámbitos que se incluirán en los tokens de identidad de JWT. Esta lista debe basarse en los ámbitos que el proveedor de identidades permite. |
Para configurar el inicio de sesión único con Microsoft Entra ID, consulte Configuración del inicio de sesión único mediante Microsoft Entra ID para Spring Cloud Gateway y el portal de API.
Puede usar Azure Portal o la CLI de Azure para editar las propiedades del inicio de sesión único.
Para editar las propiedades del inicio de sesión único en Azure Portal, siga estos pasos:
- Abra la instancia de Azure Spring Apps.
- Seleccione Spring Cloud Gateway en el panel de navegación y, a continuación, seleccione Configuración.
- Especifique los valores de las propiedades enumeradas para SSO.
- Seleccione Guardar.
VMware Spring Cloud Gateway solo admite los servidores de autorización que admiten el protocolo de detección de OpenID Connect. Además, asegúrese de configurar el servidor de autorización externo para permitir que los redireccionamientos vuelvan a la puerta de enlace. Consulte la documentación del servidor de autorización y agregue https://<gateway-external-url>/login/oauth2/code/sso
a la lista de URI de redireccionamiento permitidos.
Si configura una propiedad de inicio de sesión único incorrecta, como una contraseña incorrecta, debe quitar toda la propiedad de inicio de sesión único y, a continuación, agregar la configuración correcta.
Después de configurar el inicio de sesión único, recuerde establecer ssoEnabled: true
para las rutas de VMware Spring Cloud Gateway.
Configuración del cierre de sesión de SSO
Las instancias de servicio de VMware Spring Cloud Gateway proporcionan un punto de conexión de API predeterminado para cerrar sesión en la sesión de SSO actual. La ruta de acceso a este punto de conexión es /scg-logout
. El cierre de sesión produce uno de los siguientes resultados, en función de cómo llame al punto de conexión de cierre de sesión:
- Cierre la sesión y redirija el cierre de sesión al proveedor de identidades (IdP).
- Cierre sesión en la sesión de la instancia de servicio.
Cierre sesión en la sesión de IdP y SSO
Si envía una solicitud de GET
al punto de conexión /scg-logout
, el punto de conexión envía una respuesta de redirección 302
a la dirección URL de cierre de sesión del IdP. Para obtener el punto de conexión para devolver el usuario a una ruta de acceso en la instancia de servicio de puerta de enlace, agregue un parámetro de redirección a la solicitud GET
con el punto de conexión /scg-logout
. Por ejemplo, puede usar ${server-url}/scg-logout?redirect=/home
.
El valor del parámetro de redirección debe ser una ruta de acceso válida en la instancia del servicio VMware Spring Cloud Gateway. No se puede redirigir a una dirección URL externa.
En los siguientes pasos se describe un ejemplo de cómo implementar la función en los microservicios:
Obtenga una configuración de ruta para enrutar la solicitud de cierre de sesión a la aplicación. Para ver un ejemplo, consulte la configuración de rutas en el repositorio de rescate animal en GitHub.
Agregue la lógica de cierre de sesión que necesite a la aplicación. Al final, necesita una solicitud
GET
al punto de conexión de/scg-logout
de la puerta de enlace, como se muestra en el valor dereturn
para el métodogetActionButton
en el repositorio de rescate animal.
Cierre sesión solo en la sesión de SSO
Si envía la solicitud GET
al punto de conexión /scg-logout
mediante XMLHttpRequest
, el redireccionamiento 302
podría tragarse y no controlarse en el controlador de respuesta. En este caso, el usuario solo se cerraría la sesión de SSO en la instancia del servicio VMware Spring Cloud Gateway. El usuario seguiría teniendo una sesión de IdP válida. Normalmente, si el usuario intenta iniciar sesión de nuevo, se vuelve a enviar automáticamente a la puerta de enlace como autenticada desde IdP.
Debe tener una configuración de ruta para enrutar la solicitud de cierre de sesión a la aplicación, como se muestra en el siguiente ejemplo. Este código crea una sesión SSO de solo inicio de sesión.
const req = new XMLHttpRequest();
req.open("GET", "/scg-logout);
req.send();
Configuración del uso compartido de recursos entre orígenes
El uso compartido de recursos entre orígenes (CORS) permite solicitar recursos restringidos en una página web desde otro dominio que esté fuera del dominio desde el que se atendió el primer recurso. En la siguiente tabla se describen las opciones de configuración de CORS disponibles.
Propiedad | Descripción |
---|---|
allowedOrigins |
Orígenes permitidos para realizar solicitudes entre sitios. |
allowedOriginPatterns |
Patrones de origen permitidos para realizar solicitudes entre sitios |
allowedMethods |
Métodos HTTP permitidos en solicitudes entre sitios. |
allowedHeaders |
Encabezados permitidos en solicitudes entre sitios |
maxAge |
Cuánto tiempo, en segundos, los clientes almacenan en caché la respuesta de una solicitud preparatoria |
allowCredentials |
Si se admiten credenciales de usuario en solicitudes entre sitios. |
exposedHeaders |
Encabezados de respuesta HTTP que se exponen en solicitudes entre sitios. |
Asegúrese de que tiene la configuración de CORS correcta si desea integrar con el portal de API. Para obtener más información, consulte la sección Asignación de un punto de conexión público a VMware Spring Cloud Gateway.
Uso del escalado de servicios
Puede personalizar la asignación de recursos para las instancias de VMware Spring Cloud Gateway, incluyendo vCPU, memoria y recuento de instancias.
Para lograr una alta disponibilidad, no se recomienda usar una sola réplica.
En la siguiente tabla se describe el uso predeterminado de los recursos.
Nombre del componente | Recuento de instancias | CPU virtual por instancia | Memoria por instancia |
---|---|---|---|
Spring Cloud Gateway para VMware | 2 | 1 núcleo | 2 GiB |
Operador de Spring Cloud Gateway para VMware | 2 | 1 núcleo | 2 GiB |
Configuración de TLS entre la puerta de enlace y las aplicaciones
Para mejorar la seguridad y ayudar a proteger la información confidencial frente a la interceptación de partes no autorizadas, puede habilitar la seguridad de la capa de transporte (TLS) entre VMware Spring Cloud Gateway y sus aplicaciones.
Antes de configurar TLS, debe tener una aplicación habilitada para TLS y un certificado TLS. Para preparar un certificado TLS, genere un certificado a partir de una entidad de certificación (CA) de confianza. El certificado comprueba la identidad del servidor y establece una conexión segura.
Una vez que tenga una aplicación habilitada para TLS que se ejecute en Azure Spring Apps, cargue el certificado en Azure Spring Apps. Para más información, consulte la sección Importación de un certificado de Uso de certificados TLS/SSL en la aplicación en Azure Spring Apps.
Con el certificado actualizado a Azure Spring Apps, puede configurar el certificado TLS para la puerta de enlace y habilitar la comprobación de certificados. Puede configurar el certificado en Azure Portal o mediante la CLI de Azure.
Siga estos pasos para configurar el certificado en Azure Portal:
- En la instancia de Azure Spring Apps, seleccione Spring Cloud Gateway en el panel de navegación.
- En la página Spring Cloud Gateway, seleccione Administración de certificados.
- Seleccione Habilitar comprobación de certificados.
- Seleccione el certificado TLS en Certificados.
- Seleccione Guardar.
La actualización de la configuración puede tardar unos minutos. Cuando se haya completado la configuración, debería recibir una notificación.
Preparación de la configuración de ruta
Debe especificar el protocolo como HTTPS en la configuración de ruta. El siguiente objeto JSON indica a VMware Spring Cloud Gateway que use el protocolo HTTPS para todo el tráfico entre la puerta de enlace y la aplicación.
Cree un archivo denominado test-tls-route.json con el siguiente contenido:
{ "routes": [ { "title": "Test TLS app", "predicates": [ "Path=/path/to/your/app", "Method=GET" ] } ], "uri": "https://<app-custom-domain-name>" }
Use el siguiente comando para aplicar la regla a la aplicación:
az spring gateway route-config create \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-instance-name> \ --name test-tls-app \ --routes-file test-tls-route.json
Ahora puede probar si la aplicación está habilitada para TLS con el punto de conexión de la puerta de enlace. Para obtener más información, consulte la sección Configuración de rutas de Uso de Spring Cloud Gateway.
Rotación de certificados
Como los certificados expiran, es necesario rotarlos en VMware Spring Cloud Gateway mediante los siguientes pasos:
- Genere nuevos certificados a partir de una entidad de certificación de confianza.
- Importe los certificados en Azure Spring Apps. Para más información, consulte la sección Importación de un certificado de Uso de certificados TLS/SSL en la aplicación en Azure Spring Apps.
- Sincronice los certificados mediante Azure Portal o la CLI de Azure.
VMware Spring Cloud Gateway se reinicia para asegurarse de que la puerta de enlace usa el nuevo certificado para todas las conexiones.
Siga estos pasos para sincronizar certificados:
- En la instancia de Azure Spring Apps, seleccione Spring Cloud Gateway en el panel de navegación.
- En la página Spring Cloud Gateway, seleccione Reiniciar y confirme la operación.
Configurar ajustes de escalado automático
Puede establecer modos de escalado automático para VMware Spring Cloud Gateway.
En la siguiente lista se muestran las opciones disponibles para la administración de la demanda de escalabilidad automática:
- La opción Escalado manual mantiene un recuento fijo de instancias. Puede escalar horizontalmente a un máximo de 10 instancias. Este valor cambia el número de instancias en ejecución independientes de Spring Cloud Gateway.
- La opción Escalabilidad automática personalizada escala según cualquier programación, en función de las métricas.
En Azure Portal, elija cómo desea escalar. En la siguiente captura de pantalla se muestra la opción Escalabilidad automática personalizada y la configuración del modo:
Para obtener más información sobre las métricas disponibles, consulte la sección Opciones de métricas de usuario en Métricas en Azure Spring Apps.
Configuración de la caché de respuestas
La configuración de la caché de respuestas proporciona una manera de definir una caché de respuesta HTTP que puede aplicar globalmente o en el nivel de ruta.
Habilitación global de la caché de respuestas
Después de habilitar la caché de respuestas globalmente, la caché de respuestas se habilita automáticamente para todas las rutas aplicables.
Siga estos pasos para habilitar la caché de respuestas globalmente:
- En la instancia de Azure Spring Apps, seleccione Spring Cloud Gateway en el panel de navegación.
- En la página Spring Cloud Gateway, seleccione Configuración.
- En la sección Caché de respuestas, seleccione Activar caché de respuesta y, a continuación, establezca Ámbito en Instancia.
- Establezca Tamaño y Período de vida para la memoria caché de respuestas.
- Seleccione Guardar.
Siga estos pasos para deshabilitar la caché de respuestas:
- En la instancia de Azure Spring Apps, seleccione Spring Cloud Gateway en el panel de navegación.
- En la página Spring Cloud Gateway, seleccione Configuración.
- En la secciónCaché de respuestas, desactive Habilitar caché de respuestas.
- Seleccione Guardar.
Habilitación de la caché de respuestas en el nivel de ruta
Para habilitar la caché de respuestas para cualquier ruta, use el filtro LocalResponseCache
. En el siguiente ejemplo se muestra cómo usar el filtro LocalResponseCache
en la configuración de la regla de enrutamiento:
{
"filters": [
"<other-app-level-filter-of-route>",
],
"routes": [
{
"predicates": [
"Path=/api/**",
"Method=GET"
],
"filters": [
"<other-filter-of-route>",
"LocalResponseCache=3m, 1MB"
],
}
]
}
Para más información, consulte la sección LocalResponseCache de Uso de filtros de ruta de VMware Spring Cloud Gateway con el plan Enterprise de Azure Spring Apps y LocalResponseCache en la documentación de VMware.
En lugar de configurar size
y timeToLive
para cada filtro LocalResponseCache
individualmente, puede establecer estos parámetros en el nivel de Spring Cloud Gateway. Esta opción le permite usar el filtro LocalResponseCache
sin especificar inicialmente estos valores, a la vez que conserva la flexibilidad de invalidarlos más adelante.
Siga estos pasos para habilitar la caché de respuestas en el nivel de ruta y establecer size
y timeToLive
:
- En la instancia de Azure Spring Apps, seleccione Spring Cloud Gateway en el panel de navegación.
- En la página Spring Cloud Gateway, seleccione Configuración.
- En la sección Caché de respuestas, seleccione Activar caché de respuesta y, a continuación, establezca Ámbito en Ruta.
- Establezca Tamaño y Período de vida para la memoria caché de respuestas.
- Seleccione Guardar.
Siga estos pasos para deshabilitar la caché de respuestas en el nivel de ruta, que borra size
y timeToLive
:
- En la instancia de Azure Spring Apps, seleccione Spring Cloud Gateway en el panel de navegación.
- En la página Spring Cloud Gateway, seleccione Configuración.
- En la secciónCaché de respuestas, desactive Habilitar caché de respuestas.
- Seleccione Guardar.
En el siguiente ejemplo se muestra cómo usar el filtro de LocalResponseCache
cuando se establecen size
y timeToLive
en el nivel de Spring Cloud Gateway:
{
"filters": [
"<other-app-level-filter-of-route>",
],
"routes": [
{
"predicates": [
"Path=/api/path1/**",
"Method=GET"
],
"filters": [
"<other-filter-of-route>",
"LocalResponseCache"
],
},
{
"predicates": [
"Path=/api/path2/**",
"Method=GET"
],
"filters": [
"<other-filter-of-route>",
"LocalResponseCache=3m, 1MB"
],
}
]
}
Configuración de las variables de entorno
El servicio Azure Spring Apps administra y ajusta VMware Spring Cloud Gateway. Excepto en los casos de uso que configuran la supervisión del rendimiento de la aplicación (APM) y el nivel de registro, normalmente no es necesario configurar VMware Spring Cloud Gateway con variables de entorno.
Si tiene requisitos que no puede cumplir con otras configuraciones descritas en este artículo, puede intentar configurar las variables de entorno que se muestran en la lista Propiedades comunes de la aplicación. Asegúrese de comprobar la configuración en el entorno de prueba antes de aplicarla al entorno de producción.
Para configurar variables de entorno en Azure Portal, siga estos pasos:
- En la instancia de Azure Spring Apps, seleccione Spring Cloud Gateway en el panel de navegación y, a continuación, seleccione Configuración.
- Rellene los pares clave-valor de las variables de entorno en las secciones Propiedades y Secretos. Puede incluir variables con información confidencial en la sección Secretos.
- Seleccione Guardar para guardar los cambios.
Después de actualizar las variables de entorno, VMware Spring Cloud Gateway se reinicia.
Configuración de la supervisión del rendimiento de la aplicación
Para supervisar VMware Spring Cloud Gateway, puede configurar APM. En la siguiente tabla se enumeran los cinco tipos de agentes de Java de APM que proporciona VMware Spring Cloud Gateway, junto con las variables de entorno necesarias.
Agente de Java | Variables de entorno necesarias |
---|---|
Application Insights | APPLICATIONINSIGHTS_CONNECTION_STRING |
Dynatrace | DT_TENANT DT_TENANTTOKEN DT_CONNECTION_POINT |
New Relic | NEW_RELIC_LICENSE_KEY NEW_RELIC_APP_NAME |
AppDynamics | APPDYNAMICS_AGENT_APPLICATION_NAME APPDYNAMICS_AGENT_TIER_NAME APPDYNAMICS_AGENT_NODE_NAME APPDYNAMICS_AGENT_ACCOUNT_NAME APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY APPDYNAMICS_CONTROLLER_HOST_NAME APPDYNAMICS_CONTROLLER_SSL_ENABLED APPDYNAMICS_CONTROLLER_PORT |
APM elástica | ELASTIC_APM_SERVICE_NAME ELASTIC_APM_APPLICATION_PACKAGES ELASTIC_APM_SERVER_URL |
Para ver otras variables de entorno compatibles, consulte lo siguiente:
- Introducción a Application Insights
- Variables de entorno de Dynatrace
- Variables de entorno de New Relic
- Variables de entorno de AppDynamics
- Variables de entorno de Elastic
Configuración de la integración de APM en el nivel de instancia de servicio (recomendado)
Para habilitar la supervisión de APM en VMware Spring Cloud Gateway, puede crear una configuración de APM en el nivel de instancia de servicio y enlazarla a Spring Cloud Gateway. De este modo, puede configurar cómodamente APM solo una vez y enlazar el mismo APM a Spring Cloud Gateway y a las aplicaciones.
Siga estos pasos para configurar APM mediante Azure Portal:
Configure APM en el nivel de instancia de servicio con el nombre, el tipo y las propiedades de APM. Para obtener más información, consulte la sección Administración de API en el nivel de instancia de servicio (recomendado) de Configuración de la integración de APM y certificados de entidad de certificación.
Seleccione Spring Cloud Gateway en el panel de navegación y, a continuación, seleccione APM.
Elija el nombre de APM en la lista de Nombres de referencia de APM. La lista incluye todos los nombres de APM configurados en el paso 1.
Seleccione Guardar para enlazar nombres de referencia de APM a Spring Cloud Gateway. La puerta de enlace se reinicia para habilitar la supervisión de APM.
Administración de APM en VMware Spring Cloud Gateway (en desuso)
Puede usar Azure Portal o la CLI de Azure para configurar APM en VMware Spring Cloud Gateway. También puede especificar los tipos de agentes de Java de APM que se van a usar y las variables de entorno de APM correspondientes que admiten.
Siga estos pasos para configurar APM mediante Azure Portal:
- En la instancia de Azure Spring Apps, seleccione Spring Cloud Gateway en el panel de navegación y, a continuación, seleccione Configuración.
- Elija el tipo de APM en la lista de APM para supervisar una puerta de enlace.
- Rellene los pares clave-valor de las variables de entorno de APM en las secciones Propiedades y Secretos. Puede colocar variables con información confidencial en Secretos.
- Seleccione Guardar para guardar los cambios.
La actualización de la configuración puede tardar unos minutos. Cuando se haya completado la configuración, debería recibir una notificación.
Nota:
Azure Spring Apps actualiza el agente de APM y las aplicaciones implementadas con la misma cadencia para mantener la compatibilidad de los agentes entre VMware Spring Cloud Gateway y Azure Spring Apps.
De forma predeterminada, Azure Spring Apps imprime los registros del agente de Java de APM en STDOUT
. Estos registros se incluyen con los registros de VMware Spring Cloud Gateway. Puede comprobar la versión del agente de APM que se usa en los registros. Puede consultar estos registros en Log Analytics para solucionar problemas.
Para que los agentes de APM funcionen correctamente, aumente la CPU y la memoria de VMware Spring Cloud Gateway.
Configuración de los niveles de registro
Puede configurar los niveles de registro de VMware Spring Cloud Gateway de las siguientes maneras para obtener más detalles o reducir los registros:
- Puede establecer niveles de registro en
TRACE
,DEBUG
,INFO
,WARN
,ERROR
oOFF
. El nivel de registro predeterminado para VMware Spring Cloud Gateway esINFO
. - Puede desactivar los registros estableciendo niveles de registro en
OFF
. - Cuando el nivel de registro se establece en
WARN
,ERROR
oOFF
, es posible que tenga que ajustarlo aINFO
al solicitar soporte técnico del equipo de Azure Spring Apps. Este cambio provoca un reinicio de VMware Spring Cloud Gateway. - Cuando el nivel de registro se establece en
TRACE
oDEBUG
, podría afectar al rendimiento de VMware Spring Cloud Gateway. Intente evitar esta configuración en el entorno de producción. - Puede establecer niveles de registro para el registrador de
root
o para registradores específicos, comoio.pivotal.spring.cloud.gateway
.
Los siguientes registradores pueden contener información de solución de problemas valiosa en los niveles TRACE
y DEBUG
:
Registrador | Descripción |
---|---|
io.pivotal.spring.cloud.gateway |
Filtros y predicados, incluidas las extensiones personalizadas |
org.springframework.cloud.gateway |
Puerta de enlace de API |
org.springframework.http.server.reactive |
Interacciones del servidor HTTP |
org.springframework.web.reactive |
Flujos reactivos de puerta de enlace de API |
org.springframework.boot.autoconfigure.web |
Configuración automática de puerta de enlace de API |
org.springframework.security.web |
Información de autenticación y autorización |
reactor.netty |
Reactor Netty |
Para obtener claves de variables de entorno, agregue el prefijo logging.level.
y, a continuación, establezca el nivel de registro configurando el entorno logging.level.{loggerName}={logLevel}
. En los siguientes ejemplos se muestran los pasos de Azure Portal y la CLI de Azure.
Para configurar los niveles de registro en Azure Portal, siga estos pasos:
- En la instancia de Azure Spring Apps, seleccione Spring Cloud Gateway en el panel de navegación y, a continuación, seleccione Configuración.
- Rellene los pares clave-valor de las variables de entorno de los niveles de registro en las secciones Propiedades y Secretos. Si el nivel de registro es información confidencial en su caso, puede incluirlo mediante la sección Secretos.
- Seleccione Guardar para guardar los cambios.
Actualización de la configuración del complemento
La característica de configuración del complemento le permite personalizar determinadas propiedades de VMware Spring Cloud Gateway mediante una cadena de formato JSON. La característica es útil cuando necesita configurar las propiedades que no se exponen a través de la API de REST.
La configuración del complemento es un objeto JSON con pares clave-valor que representan la configuración deseada. En el siguiente ejemplo se muestra la estructura del formato JSON:
{
"<addon-key-name>": {
"<addon-key-name>": "<addon-value>"
...
},
"<addon-key-name>": "<addon-value>",
...
}
En la siguiente lista se muestran las configuraciones de complementos admitidas para los nombres de clave de complemento y los tipos de valor. Esta lista está sujeta a cambios a medida que actualizamos la versión de VMware Spring Cloud Gateway.
Configuración del inicio de sesión único:
Nombre de clave:
sso
Tipo de valor: objeto
Propiedades:
RolesAttributeName
(cadena): especifica el nombre del atributo que contiene los roles asociados a la sesión de SSO.InactiveSessionExpirationInMinutes
(entero): especifica el tiempo de expiración, en minutos, para las sesiones de SSO inactivas. Un valor de0
significa que la sesión nunca expira.
Ejemplo:
{ "sso": { "rolesAttributeName": "roles", "inactiveSessionExpirationInMinutes": 1 } }
Configuración de metadatos:
Nombre de clave:
api
Tipo de valor: objeto
Propiedades
groupId
(cadena): un identificador único para el grupo de API disponibles en la instancia de VMware Spring Cloud Gateway. El valor solo puede contener letras minúsculas y números.
Ejemplo:
{ "api": { "groupId": "id1" } }
Configuración del pod
Nombre de clave:
PodOverrides
, que se usa para especificar invalidaciones para la configuración predeterminada del pod.Tipo de valor: objeto
Propiedades
Containers
: esta matriz contiene la configuración de contenedores individuales dentro del pod. Actualmente solo se admite el contenedor denominadogateway
.Name
: especifica el nombre del contenedor. El contenedor debe denominarsegateway
.Lifecycle
:PreStop
es un enlace de ciclo de vida que se ejecuta cuando un contenedor está a punto de finalizarse. Este enlace le permite realizar cualquier limpieza necesaria antes de que se detenga el contenedor.
TerminationGracePeriodSeconds
: especifica la cantidad de tiempo que Kubernetes espera a que un pod finalice correctamente antes de finalizarlo forzadamente.
Ejemplo:
{ "PodOverrides": { "Containers": [ { "Name": "gateway", "Lifecycle": { "PreStop": { "Exec": { "Command": [ "/bin/sh", "-c", "sleep 20" ] } } } } ], "TerminationGracePeriodSeconds": 120 } }
Cuando se termina un pod que contiene este contenedor, el enlace
PreStop
ejecuta el comando/bin/sh -c 'sleep 20'
, lo que hace que el contenedor se suspenda durante 20 segundos. Esta pausa proporciona al contenedor algún tiempo para completar las tareas en curso o la limpieza antes de que se detenga realmente.La configuración de
TerminationGracePeriodSeconds
proporciona un total de 120 segundos para que el pod finalice correctamente, incluido el tiempo que tardan los enlaces de ciclo de vida, comoPreStop
.
Siga estos pasos para actualizar la configuración del complemento.
- En la instancia de Azure Spring Apps, seleccione Spring Cloud Gateway en el panel de navegación y, a continuación, seleccione Configuración.
- Especifique el valor JSON para Configuraciones de complementos.
- Seleccione Guardar.