Compartilhar via

Azure资源通知 - Azure 事件网格中的运行状况资源事件(预览版)

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

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

事件类型

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

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

此信息提供有关单个实例 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 Publisher定义的路径,指向发出此事件的基资源。
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 Publisher事件主题的定义路径
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 当前可用性状态。 有关值列表,请参阅 Availability Statuses - Get By Resource - 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)
  • 遇到问题的说明和受影响的字段值

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