你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

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

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

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

事件类型

运行状况资源提供两种事件类型供使用:

事件类型 说明
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
}

事件具有以下顶级数据:

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

data 对象具有以下属性:

属性 类型​​ 说明
resourceInfo 对象 特定于资源的数据。 有关详细信息,请参阅下一个表格。
apiVersion 字符串 资源属性的 API 版本。
operationalInfo 对象 与资源相关的操作信息的详细信息。

resourceInfo 对象具有以下属性:

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

operationalInfo 对象具有以下属性:

属性 类型​​ 说明
resourceEventTime DateTime 更新资源的日期和时间。

对于 AvailabilityStatusChangedResourceAnnotated 事件,data 对象中的 properties 不同。

AvailabilityStatusChanged 事件的属性

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

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

properties 类型​​ 说明
targetResourceId 字符串 要为其发出可用性信息的基本资源。
targetResourceType 字符串 基本资源的类型。
occurredTime 字符串 发出此实际事件的时间。
previousAvailabilityState 字符串 以前的可用性状态。
availabilityState 字符串 当前可用性状态。 有关值列表,请参阅可用性状态 - 按资源获取 - REST API(Azure 资源运行状况)

ResourceAnnotated 事件的属性

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

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

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

ResourceAnnotated 事件

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

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

联系我们

如果对此功能有任何疑问或反馈,请通过 arnsupport@microsoft.com 随时联系我们。

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

对于丢失的事件:

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

对于延迟或具有意外内容的事件

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

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

后续步骤

请参阅订阅 Azure 资源通知 - 运行状况资源事件