HealthResources 系统主题提供准确的、可靠和全面的运行状况信息,从而更深入地了解影响 Azure 资源的各种服务问题,即单实例虚拟机 (VM)、虚拟机规模集 VMS 和虚拟机规模集。 健康资源提供两种事件类型供消费:AvailabilityStatusChanged 和 ResourceAnnotated。
本文提供 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/AvailabilityStatuses 或 Microsoft.ResourceHealth/ResourceAnnotated。 |
properties |
物体 | 资源的有效负载。 有关详细信息,请参阅下表。 |
operationalInfo 对象具有以下属性:
| 资产 | 类型 | Description |
|---|---|---|
resourceEventTime |
日期时间 | 更新资源的日期和时间。 |
对于 properties 和 data 事件,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)
- 遇到问题的说明和受影响的字段值
请确保在共享此数据时未提供任何最终用户身份信息。