Compartir vía


Notificaciones de recursos de Azure: eventos de recursos de mantenimiento en Azure Event Grid (versión preliminar)

El tema del sistema HealthResources proporciona información de mantenimiento precisa, confiable y completa, lo que permite comprender mejor los diversos problemas de servicio que afectan a los recursos de Azure, es decir, las máquinas virtuales (VM) de instancia única, las VM de conjunto de escalado de máquinas virtuales y los conjuntos de escalado de máquinas virtuales. Los recursos de mantenimiento ofrecen dos tipos de eventos para el consumo: AvailabilityStatusChanged y ResourceAnnotated.

En este artículo se proporcionan las propiedades y el esquema de los eventos de recursos de mantenimiento de notificaciones de recurso de Azure. Para una introducción a los esquemas de eventos en general, consulte Esquema de eventos de Azure Event Grid. Además, puede encontrar ejemplos de eventos generados y un vínculo a un artículo relacionado sobre cómo crear un tema del sistema para este tipo de tema.

Tipos de eventos

Los recursos de mantenimiento ofrecen dos tipos de eventos para el consumo:

Tipo de evento Descripción
Microsoft.ResourceNotifications.HealthResources.AvailabilityStatusChanged Se genera cuando cambia el estado de disponibilidad de una máquina virtual de instancia única, un conjunto de escalado de máquinas virtuales o una máquina virtual en un conjunto de escalado de máquinas virtuales.

Esta información proporciona información sobre todas las veces que sus máquinas virtuales de instancia única, máquinas virtuales en conjuntos de escalado de máquinas virtuales o los propios conjuntos de escalado de máquinas virtuales no han estado disponibles debido a problemas de servicio de Azure. Para obtener más información sobre los distintos estados de mantenimiento, consulte Introducción a Azure Resource Health: Azure Service Health.

Microsoft.ResourceNotifications.HealthResources.ResourceAnnotated Se genera cuando el estado de una máquina virtual, un conjunto de escalado de máquinas virtuales o una máquina virtual de un conjunto de escalado de máquinas virtuales se ve afectado por la disponibilidad que afecta a las interrupciones. La plataforma emite contexto sobre por qué se ha producido la interrupción para ayudarle a responder correctamente.

Esta información le ayuda a deducir el estado de disponibilidad de los recursos al proporcionar información crucial sobre los motivos y las causas de los cambios en la disponibilidad. Con estos datos, puede tomar medidas de mitigación más rápidas y dirigidas. Para obtener más información sobre las distintas anotaciones emitidas, consulte Anotaciones de mantenimiento de la máquina virtual de Resource Health.

Control de acceso basado en rol

Actualmente, estos eventos se emiten exclusivamente en el ámbito de la suscripción de Azure. Implica que la entidad que crea la suscripción a eventos para este tipo de tema recibe notificaciones a través de esta suscripción a Azure. Por motivos de seguridad, es imperativo restringir la capacidad de crear suscripciones de eventos en este tema a entidades de seguridad con acceso de lectura en toda la suscripción de Azure. Para acceder a los datos a través de este tema del sistema, además de los permisos genéricos que requiere Event Grid, es necesario el siguiente permiso específico de notificaciones de recursos de Azure: Microsoft.ResourceNotifications/systemTopics/subscribeToHealthResources/action.

Esquemas de eventos

Este es el esquema:

{
    "id": string,
    "source": string,
    "subject": string,
    "type": "Microsoft.ResourceNotifications.HealthResources.AvailabilityStatusChanged | Microsoft.ResourceNotifications.HealthResources.ResourceAnnotated",
    "time ": string, 
    "data": {
        "resourceInfo": {
            "id": string,
            "name": string,
            "type": string,
            "properties": { 
                <<Different for AvailabilityStatusChanged event and ResourceAnnotated event>>            
            }
        },
        "operationalInfo":{
			"resourceEventTime": date-time
		},
        "apiVersion": string 
    }, 
    "specversion": string
}

Un evento tiene los siguientes datos de nivel superior:

Propiedad Tipo Description
id String Identificador único del evento
source String La suscripción de Azure para la que se va a crear este tema del sistema.
subject String Ruta de acceso definida por el publicador al recurso base sobre el que se emite este evento.
type String Tipo de evento registrado de este tipo de tema del sistema
time String
Formato: 2022-11-07T18:43:09.2894075Z
La hora de generación del evento en función de la hora UTC del proveedor
data Object Contiene datos del evento específicos del proveedor de recursos. Para más información, consulte la siguiente tabla.
specversion String Versión de especificación del esquema CloudEvents.

El objeto data tiene las siguientes propiedades:

Propiedad Tipo Description
resourceInfo Object Datos específicos del recurso. Para más información, consulte la siguiente tabla.
apiVersion String Versión de la API de las propiedades del recurso.
operationalInfo Object Detalles de la información operativa relacionada con el recurso.

El objeto resourceInfo tiene las siguientes propiedades:

Propiedad Tipo Description
id String Ruta de acceso al asunto del evento definido por el anunciante
name String Este campo indica el id. de evento. Siempre toma el valor de la última sección del campo id.
type String Tipo de evento que se está emitiendo. En este contexto, es Microsoft.ResourceHealth/AvailabilityStatuses o Microsoft.ResourceHealth/ResourceAnnotated.
properties Object Carga del recurso. Para más información, consulte la siguiente tabla.

El objeto operationalInfo tiene las siguientes propiedades:

Propiedad Tipo Descripción
resourceEventTime DateTime Fecha y hora en que se actualizó el recurso.

El properties dentro del objeto data es diferente para los eventos AvailabilityStatusChanged y ResourceAnnotated.

Propiedades del evento AvailabilityStatusChanged

            "properties": {
                "targetResourceId": string,
                "targetResourceType": string,
                "occurredTime": string,
                "previousAvailabilityState": string,
                "availabilityState": string
            }

Para el evento AvailabilityStatusChanged, el objeto properties tiene las siguientes propiedades:

Propiedad Tipo Description
targetResourceId String Recurso base para el que se emite la información de disponibilidad.
targetResourceType String Tipo del recurso base.
occurredTime String Hora en que se emitió este evento real.
previousAvailabilityState String Estado de disponibilidad anterior.
availabilityState String Estado de disponibilidad actual. Para obtener la lista de valores, consulte Estado de disponibilidad: Obtener por recurso: API de REST (Azure Resource Health).

Propiedades del evento ResourceAnnotated

            "properties": {
                "targetResourceId": string,
                "targetResourceType": string,
                "occurredTime": string,
                "annotationName": string,
                "reason": string,
                "summary": string,
                "context": string,
                "category": string,
            }

Para el evento ResourceAnnotated, el objeto properties tiene las siguientes propiedades:

Propiedad Tipo Description
targetResourceId String Recurso base para el que se emite la información de anotación.
targetResourceType String Tipo del recurso base.
occurredTime String Marca de tiempo en la que la plataforma Azure emitió la anotación en respuesta a un evento que influyó en la disponibilidad.
annotationName String El nombre de la anotación. Para obtener la lista de anotaciones y las descripciones correspondientes, consulte Anotaciones de estado de máquina virtual de Resource Health: Azure Service Health.
reason String Breve instrucción sobre por qué ha cambiado o se ha visto influenciada la disponibilidad de recursos.
summary String Instrucciones detalladas sobre la actividad y la causa de que la disponibilidad de los recursos cambie o se vea influenciada.
context String Determina si la disponibilidad de los recursos se vio influenciada debido a la actividad causada por Azure o por el usuario.
category String Determina si la disponibilidad de los recursos se ha visto influenciado debido a una actividad planeada o no planeada. Esta propiedad solo se aplica a eventos Platform-Initiated.

Eventos de ejemplo

Evento AvailabilityStatusChanged

En el siguiente ejemplo se muestra el esquema de un evento modificado de valor clave:

{
  "id": "1fb6fa94-d965-4306-abeq-4810f0774e97",
  "source": "/subscriptions/{subscription-id}",
  "subject": "/subscriptions/{subscription-id}/resourceGroups/{rg-name}/providers/Microsoft.Compute/virtualMachines/{vm-name}",
  "data": {
    "resourceInfo": {
      "id": "/subscriptions/{subscription-id}/resourceGroups/{rg-name}/providers/Microsoft.Compute/virtualMachines/{vm-name}/providers/Microsoft.ResourceHealth/availabilityStatuses/{event-id}",
      "name": "{event-id}",
      "type": "Microsoft.ResourceHealth/availabilityStatuses",
      "properties": {
        "targetResourceId": "/subscriptions/{subscription-id}/resourceGroups/{rg-name}/providers/Microsoft.Compute/virtualMachines/{vm-name}",
        "targetResourceType": "Microsoft.Compute/virtualMachines",
        "occurredTime": "2023-07-24T19:20:37.9245071Z",
        "previousAvailabilityState": "Unavailable",
        "availabilityState": "Available"
      }
    },
    "operationalInfo": {
      "resourceEventTime": "2023-07-24T19:20:37.9245071Z"
    },
    "apiVersion": "2023-12-01"
  },
  "type": "Microsoft.ResourceNotifications.HealthResources.AvailabilityStatusChanged",
  "specversion": "1.0",
  "time": "2023-07-24T19:20:37.9245071Z"
}

Evento ResourceAnnotated

En el siguiente ejemplo se muestra el esquema de un evento modificado de valor clave:

{
  "id": "8945cf9b-e220-496e-ab4f-f3a239318995",
  "source": "/subscriptions/{subscription-id}",
  "subject": "/subscriptions/{subscription-id}/resourceGroups/{rg-name}/providers/Microsoft.Compute/virtualMachines/{vm-name}",
  "data": {
    "resourceInfo": {
      "id": "/subscriptions/{subscription-id}/resourceGroups/{rg-name}/providers/Microsoft.Compute/virtualMachines/{vm-name}/providers/Microsoft.ResourceHealth/resourceAnnotations/{event-id}",
      "name": "{event-id}",
      "type": "Microsoft.ResourceHealth/resourceAnnotations",
      "properties": {
        "targetResourceId": "/subscriptions/{subscription-id}/resourceGroups/{rg-name}/providers/Microsoft.Compute/virtualMachines/{vm-name}",
        "targetResourceType": "Microsoft.Compute/virtualMachines",
        "occurredTime": "2023-07-24T19:20:37.9245071Z",
        "annotationName": "VirtualMachineDeallocationInitiated",
        "reason": "Stopping and deallocating",
        "summary": "This virtual machine is stopped and deallocated as requested by an authorized user or process.",
        "context": "Customer Initiated",
        "category": "Not Applicable"
      }
    },
    "operationalInfo": {
      "resourceEventTime": "2023-07-24T19:20:37.9245071Z"
    },
    "apiVersion": "2022-08-01"
  },
  "type": "Microsoft.ResourceNotifications.HealthResources.ResourceAnnotated",
  "specversion": "1.0",
  "time": "2023-07-24T19:20:37.9245071Z"
}

Ponerse en contacto con nosotros

Si tiene alguna pregunta o comentarios sobre esta característica, no dude en ponerse en contacto con nosotros en arnsupport@microsoft.com.

Para ayudarle mejor con comentarios específicos sobre un determinado evento, proporcione la siguiente información:

Para los eventos que faltan:

  • Nombre del tipo de tema del sistema
  • Marca de tiempo aproximada en UTC cuando se ejecutó la operación
  • Identificador de recurso base para el que se generó la notificación
  • Vaya al recurso en Azure Portal y seleccione la vista JSON en la esquina derecha. El identificador de recurso es el primer campo de la página de vista JSON.
  • Tipo de evento esperado
  • Operación ejecutada (por ejemplo, máquina virtual iniciada o detenida, cuenta de Storage creada, etc.)
  • Descripción del problema detectado (por ejemplo, máquina virtual iniciada y no se generó ningún evento Microsoft.ResourceNotifications.HealthResources.AvailabilityStatusChanged)
  • Si es posible, proporcione el identificador de correlación de la operación ejecutada.

Para eventos retrasados o con contenido inesperado

  • Nombre del tipo de tema del sistema
  • Todo el contenido de la notificación, excepto data.resourceInfo.properties
  • Descripción del problema detectado y valores de campo afectados

Asegúrese de no proporcionar información de identificación del usuario final al compartir estos datos.

Pasos siguientes

Consulte Suscripción a notificaciones de recursos de Azure: eventos de recursos de mantenimiento.