次の方法で共有

Azure 事件网格中的 Azure 资源通知 - 健康资源事件(预览)

HealthResources 系统主题提供准确的、可靠和全面的运行状况信息,从而更深入地了解影响 Azure 资源的各种服务问题,即单实例虚拟机 (VM)、虚拟机规模集 VMS 和虚拟机规模集。 健康资源提供两种事件类型供消费:AvailabilityStatusChangedResourceAnnotated

本文提供 Azure Resource Notifications 的 Health Resources 事件的属性和架构。 有关一般事件架构的简介,请参阅 Azure 事件网格事件架构。 此外,还可以找到生成的事件示例,以及有关如何为本主题类型创建系统主题的相关文章的链接。

事件类型

健康资源提供两种事件类型供消费。

事件类型 Description
Microsoft.ResourceNotifications.HealthResources.AvailabilityStatusChanged 当单个实例 VM、虚拟机规模集或虚拟机规模集中的 VM 的可用性状态发生更改时引发。

此信息提供关于您的单个实例虚拟机、虚拟机规模集中的虚拟机或虚拟机规模集因 Azure 服务问题导致不可用的所有时间点的深入见解。 有关各种运行状况的详细信息,请参阅 Azure 资源运行状况概述 - Azure 服务运行状况

Microsoft.ResourceNotifications.HealthResources.ResourceAnnotated 当 VM、虚拟机规模集或虚拟机规模集中的 VM 的运行状况受影响可用性的中断影响时引发。 平台会发出上下文,说明发生中断的原因,以帮助你做出适当的响应。

此信息通过提供有关可用性更改的理由和原因的重要信息,帮助你推断资源的可用性状态。 使用此数据,可以采取更快、更有针对性的缓解措施。 有关发出的各种注释的详细信息,请参阅资源运行状况虚拟机运行状况注释

基于角色的访问控制

目前,这些事件仅在 Azure 订阅范围内发出。 这意味着为本主题类型创建事件订阅的实体会在此 Azure 订阅中接收通知。 出于安全原因,必须限制只有对整个 Azure 订阅具有读取访问权限的主体才能在本主题上创建事件订阅的功能。 若要通过此系统主题访问数据,除了事件网格所需的通用权限外,还需要以下 Azure 资源通知特定权限: Microsoft.ResourceNotifications/systemTopics/subscribeToHealthResources/action

事件架构

以下是架构:

{
    "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
}

事件具有以下顶级数据:

资产 类型 Description
id String 事件的唯一标识符
source String 为创建此系统主题的 Azure 订阅。
subject String 发布者定义了发出该事件的基础资源路径。
type String 此系统主题类型的已注册事件类型
time 字符串
格式:2022-11-07T18:43:09.2894075Z
根据提供程序的 UTC 时间生成事件的时间
data 物体 包含特定于资源提供程序的事件数据。 有关详细信息,请参阅下表。
specversion String CloudEvents 架构规范版本。

data 对象具有以下属性:

资产 类型 Description
resourceInfo 物体 特定于资源的数据。 有关详细信息,请参阅下表。
apiVersion String 资源属性的 API 版本。
operationalInfo 物体 与资源相关的操作信息的详细信息。

resourceInfo 对象具有以下属性:

资产 类型 Description
id String 发布者定义的事件主题路径
name String 此字段指示事件 ID。它始终采用字段最后一部分 id 的值。
type String 正在发出的事件的类型。 在此上下文中,它是 Microsoft.ResourceHealth/AvailabilityStatusesMicrosoft.ResourceHealth/ResourceAnnotated
properties 物体 资源的有效负载。 有关详细信息,请参阅下表。

operationalInfo 对象具有以下属性:

资产 类型 Description
resourceEventTime 日期时间 更新资源的日期和时间。

对于 propertiesdata 事件,AvailabilityStatusChanged 对象中的 ResourceAnnotated 不同。

AvailabilityStatusChanged 事件的属性

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

对于 AvailabilityStatusChanged 事件,properties 对象具有以下属性:

资产 类型 Description
targetResourceId String 用于发布其可用性信息的基本资源。
targetResourceType String 基本资源的类型。
occurredTime String 此实际事件发生的时间。
previousAvailabilityState String 以前的可用性状态。
availabilityState String 当前可用性状态。 有关值列表,请参阅可用性状态 - 按资源获取 - REST API(Azure 资源运行状况)

ResourceAnnotated 事件的属性

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

对于 ResourceAnnotated 事件,properties 对象具有以下属性:

资产 类型 Description
targetResourceId String 为其提供注释信息的基础资源。
targetResourceType String 基本资源的类型。
occurredTime String Azure 平台发出注释以响应影响可用性的事件时的时间戳。
annotationName String 注释的名称。 有关注释列表和相应的说明,请参阅资源运行状况虚拟机运行状况注释 - Azure 服务运行状况
reason String 有关资源可用性发生更改或受影响的原因的简短陈述。
summary String 有关活动以及资源可用性发生更改或受影响的原因的详细陈述。
context String 确定资源可用性是否因 Azure 或用户引起的活动而受到影响。
category String 确定资源可用性是因计划内活动还是计划外活动而受到影响。 此属性仅适用于 Platform-Initiated 事件。

示例事件

AvailabilityStatusChanged 事件

以下示例显示了关键值修改事件的模式架构:

{
  "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"
}

资源注释事件

以下示例显示键/值修改事件的架构:

{
  "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"
}

联系我们

如果对此功能有任何疑问或反馈,请毫不犹豫地通过此 stackoverflow 链接联系我们

为了更好地帮助你提供有关特定事件的特定反馈,请提供以下信息:

对于缺少的事件:

  • 系统主题类型名称
  • 执行操作时的近似时间戳(UTC)
  • 生成通知的基准资源 ID
  • 导航到 Azure 门户中的资源,然后选择最右侧的 JSON 视图。 资源 ID 是 JSON 视图页上的第一个字段。
  • 预期事件类型
  • 已执行的操作(例如:VM 已启动或停止、创建了存储帐户等)
  • 遇到问题的说明(例如,VM 已启动且未生成 Microsoft.ResourceNotifications.HealthResources.AvailabilityStatusChanged 事件)
  • 如果可能,请提供所执行操作的相关 ID。

对于延迟或包含意外内容的事件

  • 系统主题类型名称
  • 整个通知内容(不包括 data.resourceInfo.properties)
  • 遇到问题的说明和受影响的字段值

请确保在共享此数据时未提供任何最终用户身份信息。