Compartilhar via

Azure资源通知 - Azure 事件网格中的资源管理事件

Azure资源管理系统主题提供有关各种Azure资源的生命周期的见解。

Azure订阅和Azure资源组的事件网格系统主题使用更广泛的事件类型(包括操作、写入和删除事件)提供资源生命周期事件,这些事件涉及成功、失败和取消的情况。 但是,值得注意的是,它们不包括资源负载。 有关这些事件的详细信息,请参阅 Azure 订阅的 event Grid 系统主题 Azure 资源组

相比之下, Azure资源通知(ARN)支持的Azure资源管理系统主题提供了更有针对性的事件类型选择,特别是CreatedOrUpdated(对应于事件网格Azure订阅系统主题中的 ResourceWriteSuccess),以及 Deleted(对应于事件网格Azure订阅系统主题中的 ResourceDeleteSuccess)。 这些事件附带了全面的有效负载信息,使客户更容易应用筛选并优化其通知流。

有关公开的资源类型列表,请参阅Azure Resource Graph资源或使用以下Azure Resource Graph查询。

resources
| distinct ['type']

注意

Azure资源管理系统主题尚不支持Azure Resource Graph资源表中的所有资源类型。 我们正在努力改进此体验。

事件类型

ARN 资源系统主题提供两种事件类型供使用:

事件类型 说明
Microsoft.ResourceNotifications.Resources.CreatedOrUpdated 在成功创建或更新资源时引发。
Microsoft.ResourceNotifications.Resources.Deleted 在删除资源时引发。

基于角色的访问控制

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

事件架构

本部分提供 CreatedOrUpdatedDeleted 事件的架构。

CreatedOrUpdated 事件的事件架构

以下是架构:

{
    "id": "string",
    "source": "string",
    "subject": "string",
    "data": {
        "resourceInfo": {
            "id": "string",
            "name": "string",
            "type": "string",
            "location": "string",
            "tags": "string",
            "properties": {
                "_comment": "object-unique-to-each-publisher"
            }
        },
        "apiVersion": "string",
        "operationalInfo": {
            "resourceEventTime": "datetime"
        }
    },
    "type": "string",
    "specversion": "string",
    "time": "string"
}

已删除事件的架构

以下是架构:

{
    "id": "string",
    "source": "string",
    "subject": "string",
    "data": {
        "resourceInfo": {
            "id": "string",
            "name": "string",
            "type": "string"
        },
        "operationalInfo": {
            "resourceEventTime": "datetime"
        }
    },
    "type": "string",
    "specversion": "string",
    "time": "string"
}

“事件网格”事件架构格式中的事件具有以下顶级属性:

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

云事件架构格式中的事件具有以下顶级属性:

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

data 对象具有以下属性:

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

resourceInfo 对象在 CreatedOrUpdatedDeleted 事件中具有以下常见属性:

属性 类型 说明
id 字符串 Publisher事件主题的定义路径
name 字符串 此字段表示事件 ID。它始终采用 id 字段中最后一节的值。
type 字符串 正在发出的事件的类型。 在此上下文中,它是 Microsoft.ResourceNotifications.Resources.CreatedOrUpdatedMicrosoft.ResourceNotifications.Resources.Deleted

resourceInfo 事件的 CreatedOrUpdated 对象另外具有以下属性:

属性 类型 说明
location 字符串 资源所在的位置或区域。
tags 字符串 资源的标签。
properties 对象 资源的有效负载。

只有 CreatedOrUpdated 事件包含 properties 对象。 此 properties 对象的架构对于每个发布者都是唯一的。 若要发现架构,请参阅特定Azure资源的 REST API 文档。 可在本文的“示例事件”部分中找到一个示例。

            "properties": {
                "_comment": "<< object-unique-to-each-publisher >>"
            }

operationalInfo 对象具有以下属性:

属性 类型 说明
resourceEventTime DateTime 创建或更新资源的日期和时间(对于 CreatedOrUpdated 事件),或删除资源的日期和时间(对于 Deleted 事件)。

示例事件

CreatedOrUpdated 事件

本部分显示了在创建系统主题的Azure订阅中创建Azure 存储帐户时生成的 CreatedOrUpdated 事件。

{
  "id": "4eef929a-a65c-47dd-93e2-46b8c17c6c17",
  "source": "/subscriptions/{subscription-id}",
  "subject": "/subscriptions/{subscription-id}/resourceGroups/{rg-name}/providers/Microsoft.Storage/storageAccounts/{storageAccount-name}",
  "data": {
    "resourceInfo": {
      "tags": {},
      "id": "/subscriptions/{subscription-id}/resourceGroups/{rg-name}/providers/Microsoft.Storage/storageAccounts/{storageAccount-name}",
      "name": "StorageAccount-name",
      "type": "Microsoft.Storage/storageAccounts",
      "location": "chinanorth",
      "properties": {
        "privateEndpointConnections": [],
        "minimumTlsVersion": "TLS1_2",
        "allowBlobPublicAccess": 1,
        "allowSharedKeyAccess": 1,
        "networkAcls": {
          "bypass": "AzureServices",
          "virtualNetworkRules": [],
          "ipRules": [],
          "defaultAction": "Allow"
        },
        "supportsHttpsTrafficOnly": 1,
        "encryption": {
          "requireInfrastructureEncryption": 0,
          "services": {
            "file": {
              "keyType": "Account",
              "enabled": 1,
              "lastEnabledTime": "2023-07-28T20:12:50.6380308Z"
            },
            "blob": {
              "keyType": "Account",
              "enabled": 1,
              "lastEnabledTime": "2023-07-28T20:12:50.6380308Z"
            }
          },
          "keySource": "Microsoft.Storage"
        },
        "accessTier": "Hot",
        "provisioningState": "Succeeded",
        "creationTime": "2023-07-28T20:12:50.4661564Z",
        "primaryEndpoints": {
          "dfs": "https://{storageAccount-name}.dfs.core.chinacloudapi.cn/",
          "web": "https://{storageAccount-name}.z13.web.core.chinacloudapi.cn/",
          "blob": "https://{storageAccount-name}.blob.core.chinacloudapi.cn/",
          "queue": "https://{storageAccount-name}.queue.core.chinacloudapi.cn/",
          "table": "https://{storageAccount-name}.table.core.chinacloudapi.cn/",
          "file": "https://{storageAccount-name}.file.core.chinacloudapi.cn/"
        },
        "primaryLocation": "chinanorth",
        "statusOfPrimary": "available",
        "secondaryLocation": "chinaeast",
        "statusOfSecondary": "available",
        "secondaryEndpoints": {
          "dfs": "https://{storageAccount-name} -secondary.dfs.core.chinacloudapi.cn/",
          "web": "https://{storageAccount-name}-secondary.z13.web.core.chinacloudapi.cn/",
          "blob": "https://{storageAccount-name}-secondary.blob.core.chinacloudapi.cn/",
          "queue": "https://{storageAccount-name}-secondary.queue.core.chinacloudapi.cn/",
          "table": "https://{storageAccount-name}-secondary.table.core.chinacloudapi.cn/"
        }
      }
    },
    "apiVersion": "2019-06-01",
    "operationalInfo": {
      "resourceEventTime": "2023-07-28T20:13:10.8418063Z"
    }
  },
  "type": "Microsoft.ResourceNotifications.Resources.CreatedOrUpdated",
  "specversion": "1.0",
  "time": "2023-07-28T20:13:10.8418063Z"
}

已删除的事件

本部分显示了在创建系统主题的Azure订阅中删除Azure 存储帐户时生成的 Deleted 事件。

{
  "id": "d4611260-d179-4f86-b196-3a9d4128be2d",
  "source": "/subscriptions/{subscription-id}",
  "subject": "/subscriptions/{subscription-id}/resourceGroups/{rg-name}/providers/Microsoft.Storage/storageAccounts/{storageAccount-name}",
  "data": {
    "resourceInfo": {
      "id": "/subscriptions/{subscription-id}/resourceGroups/{rg-name}/providers/Microsoft.Storage/storageAccounts/{storageAccount-name}",
      "name": "storageAccount-name",
      "type": "Microsoft.Storage/storageAccounts"
    },
    "operationalInfo": {
      "resourceEventTime": "2023-07-28T20:11:36.6347858Z"
    }
  },
  "type": "Microsoft.ResourceNotifications.Resources.Deleted",
  "specversion": "1.0",
  "time": "2023-07-28T20:11:36.6347858Z"
}

联系我们

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

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

对于缺失的事件:

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

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

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

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

后续步骤

请参阅 订阅Azure资源通知 - 资源管理事件