Compartir vía


Streaming de registros de trabajos de Azure Spring Apps en tiempo real (versión preliminar)

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: ❎ Básico/Estándar ✅ Enterprise

En este artículo se describe cómo usar la CLI de Azure para obtener registros en tiempo real de trabajos para solucionar problemas. También puede usar la configuración de diagnóstico para analizar datos de diagnóstico en Azure Spring Apps. Para obtener más información, consulte Análisis de registros y métricas con la configuración de diagnóstico. Para más información sobre la transmisión de registros, consulte Transmisión de registros de la consola de aplicaciones de Azure Spring Apps en tiempo real y Transmisión de registros de componentes administrados de Azure Spring Apps en tiempo real.

Requisitos previos

  • CLI de Azure con la extensión de Azure Spring Apps, versión 1.24.0 o superior. Para instalar esta extensión, puede usar el comando siguiente: az extension add --name spring.

Asignación de un rol de Azure

Para transmitir registros de trabajos, debe tener asignados los roles de Azure pertinentes. En la tabla siguiente se muestra el rol necesario y las operaciones para las que se concede permiso a este rol:

Rol necesario Operations
Rol de lector de registros de trabajos de Azure Spring Apps Microsoft.AppPlatform/Spring/jobs/executions/logstream/action
Microsoft.AppPlatform/Spring/jobs/executions/listInstances/action

Siga estos pasos para asignar un rol de Azure mediante Azure Portal:

  1. Abra Azure Portal.

  2. Abra su instancia de servicio de Azure Spring Apps.

  3. En el panel de navegación izquierdo, seleccione Access Control (IAM).

  4. En la página Control de acceso (IAM), seleccione Agregar y, a continuación, seleccione Agregar asignación de roles.

    Captura de pantalla de Azure Portal que muestra la página Control de acceso (IAM) con la opción Agregar asignación de roles resaltada.

  5. En la página Agregar asignación de roles, en la lista Nombre, busque y seleccione el rol de destino y, a continuación, seleccione Siguiente.

    Captura de pantalla de Azure Portal que muestra la página Agregar asignación de roles con el nombre del rol de lector de registros de Azure Spring Apps resaltado

  6. Seleccione Miembros y busque y seleccione su nombre de usuario.

  7. Seleccione Revisar y asignar.

Visualización de los registros finales

En esta sección se proporcionan ejemplos de uso de la CLI de Azure para producir registros finales.

Visualización de los registros finales de una instancia específica

Cada vez que se desencadena un trabajo, se crea una nueva ejecución de trabajo. Además, en función de la configuración del paralelismo del trabajo, varias réplicas o instancias se ejecutan en paralelo.

Use el comando siguiente para enumerar todas las instancias de una ejecución de trabajo:

az spring job execution instance list \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --job <job-name> \
    --execution <job-execution-name>

Es posible obtener todos los nombres de instancia de la ejecución del trabajo de la salida.

Para ver los registros finales de una instancia específica, use el comando az spring job logs con el argumento -i/--instance, como se muestra en el ejemplo siguiente.

az spring job logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <job-name> \
    --execution <job-execution-name> \
    --instance <instance-name>

Visualización de los registros finales de todas las instancias en un comando

Para ver los registros finales de todas las instancias, use el argumento --all-instances, como se muestra en el ejemplo siguiente. El nombre de instancia es el prefijo de cada línea de registro. Cuando hay varias instancias, los registros se imprimen por lotes para cada instancia. De este modo, los registros de una instancia no se intercalan con los registros de otra instancia.

az spring job logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <job-name> \
    --execution <job-execution-name> \
    --all-instances

Transmisión continua de nuevos registros

De manera predeterminada, az spring job logs imprime solo los registros existentes transmitidos a la consola y, a continuación, se cierra. Si desea transmitir nuevos registros, agregue el argumento -f/--follow.

Cuando se usa la opción -f/--follow para seguir registros instantáneos, el servicio de streaming de registro de Azure Spring Apps envía registros de latido al cliente cada minuto, a menos que el componente escriba registros constantemente. Los mensajes de registro de latido usan el siguiente formato: 2023-12-18 09:12:17.745: No log from server.

Transmisión de registros para una instancia específica

Use los siguientes comandos para obtener los nombres de instancia y transmitir registros para instancias específicas:

az spring job execution instance list \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --job <job-name> \
    --execution <job-execution-name>

az spring job logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <job-name> \
    --execution <job-execution-name> \
    --instance <instance-name> \
    --follow

Transmisión de registros para todas las instancias

Use el siguiente comando para transmitir registros para todas las instancias:

az spring job logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <job-name> \
    --execution <job-execution-name> \
    --all-instances \
    --follow

Al transmitir registros para varias instancias de una ejecución de trabajo, los registros de una instancia se intercalarán con registros de otras.

Transmisión de registros en una instancia de inserción de red virtual

En el caso de una instancia de Azure Spring Apps implementada en una red virtual personalizada, puede acceder al streaming de registro de forma predeterminada desde una red privada. Para más información, consulte Implementación de Azure Spring Apps en una red virtual

Azure Spring Apps también le permite acceder a los registros de trabajo en tiempo real desde una red pública.

Nota:

Al habilitar el punto de conexión de streaming de registro en la red pública, se agrega una dirección IP de entrada pública a la red virtual. Asegúrese de tener cuidado si esto es una preocupación para usted.

Siga estos pasos para habilitar un punto de conexión de streaming de registro en la red pública:

  1. Seleccione la instancia de servicio de Azure Spring Apps implementada en la red virtual y, a continuación, seleccione Redes en el panel de navegación.

  2. Seleccione la pestaña Inyección de red virtual.

  3. Cambie el estado de Recursos de Dataplane en la red pública a Habilitar para habilitar un punto de conexión de streaming de registro en la red pública. Este proceso tarda unos minutos.

    Captura de pantalla de Azure Portal que muestra la página Redes con la pestaña Inserción de red virtual seleccionada y la sección Solución de problemas resaltada.

Después de habilitar el punto de conexión público de streaming de registro, puede acceder a los registros de trabajos desde una red pública, como si tuviera acceso a una instancia normal.

Protección del tráfico al punto de conexión público de streaming de registro

El streaming de registro para trabajos usa el control de acceso basado en rol de Azure para autenticar las conexiones a los trabajos. Como resultado, solo los usuarios que tienen los roles adecuados pueden acceder a los registros.

Para garantizar la seguridad de los trabajos al exponer un punto de conexión público para ellas, proteja el punto de conexión filtrando el tráfico de red al servicio con un grupo de seguridad de red. Para obtener más información, consulte el Tutorial: Filtrado del tráfico de red con un grupo de seguridad de red mediante Azure Portal. Un grupo de seguridad de red contiene reglas de seguridad que permiten o deniegan el tráfico de red entrante o el tráfico de red saliente de varios tipos de recursos de Azure. En todas las reglas, puede especificar un origen y destino, un puerto y un protocolo.

Nota:

Si no puede acceder a los registros de trabajos en la instancia de inyección de red virtual desde Internet tras haber habilitado un punto de conexión público de streaming de registro, compruebe el grupo de seguridad de red para ver si ha permitido este tráfico entrante.

En la tabla siguiente se muestra un ejemplo de una regla básica que se recomienda. Puede usar comandos como nslookup con el punto de conexión <service-name>.private.azuremicroservices.io para obtener la dirección IP de destino de un servicio.

Priority Nombre Puerto Protocolo Origen Destino Acción
100 Nombre de la regla 80 TCP Internet Dirección IP del servicio Permitir
110 Nombre de la regla 443 TCP Internet Dirección IP del servicio Permitir

Pasos siguientes