将 Azure API 管理用作事件网格源

本文提供 Azure API 管理 事件的属性和架构。 有关事件架构的简介,请参阅 Azure 事件网格事件架构。 它还提供了指向使用 API 管理作为事件源的文章的链接。

可用事件类型

API 管理发出以下事件类型:

事件类型 DESCRIPTION
Microsoft.ApiManagement.UserCreated 创建用户时引发。
Microsoft.ApiManagement.UserUpdated 更新用户时引发。
Microsoft.ApiManagement.UserDeleted 删除用户时引发。
Microsoft.ApiManagement.APICreated 创建 API 时引发。
Microsoft.ApiManagement.APIUpdated 更新 API 时引发。
Microsoft.ApiManagement.APIDeleted 删除 API 时引发。
Microsoft.ApiManagement.ProductCreated 创建产品时引发。
Microsoft.ApiManagement.ProductUpdated 更新产品时引发。
Microsoft.ApiManagement.产品已删除 删除产品时引发。
Microsoft.ApiManagement.APIReleaseCreated 创建 API 发布时引发。
Microsoft.ApiManagement.APIReleaseUpdated 更新 API 发布时引发。
Microsoft.ApiManagement.APIReleaseDeleted 删除 API 发布时引发。
Microsoft.ApiManagement.SubscriptionCreated 创建订阅时引发。
Microsoft.ApiManagement.SubscriptionUpdated 更新订阅时引发。
Microsoft.ApiManagement.SubscriptionDeleted 删除订阅时引发。
Microsoft.ApiManagement.GatewayCreated 在创建自托管网关时引发。
Microsoft.ApiManagement.GatewayDeleted 在更新自托管网关时引发。
Microsoft.ApiManagement.GatewayUpdated 在删除自托管网关时引发。
Microsoft.ApiManagement.GatewayAPIAdded 将 API 添加到自托管网关时引发。
Microsoft.ApiManagement.GatewayAPIRemoved 从自托管网关中移除 API 时引发。
Microsoft.ApiManagement.GatewayCertificateAuthorityCreated 更新自托管网关的证书颁发机构时引发。
Microsoft.ApiManagement.GatewayCertificateAuthorityDeleted 删除自托管网关的证书颁发机构时引发。
Microsoft.ApiManagement.GatewayCertificateAuthorityUpdated 更新自托管网关的证书颁发机构时引发。
Microsoft.ApiManagement.GatewayHostnameConfigurationCreated 在为自托管网关创建主机名配置时引发。
Microsoft.ApiManagement.GatewayHostnameConfigurationDeleted 删除自托管网关的主机名配置时引发。
Microsoft.ApiManagement.GatewayHostnameConfigurationUpdated 更新自托管网关的主机名配置时引发。
Microsoft.ApiManagement.GatewayTokenNearExpiry (preview) 自托管网关访问令牌即将过期时引发。
Microsoft.ApiManagement.GatewayTokenExpired (preview) 自托管网关访问令牌过期时引发。
Microsoft.ApiManagement.CircuitBreaker.Opened(预览版) 打开后端断路器时引发。
Microsoft.ApiManagement.CircuitBreaker.Closed(预览版) 关闭后端断路器时引发。

示例事件

以下示例显示了产品创建事件的架构。 其他 API 管理资源创建事件的架构类似。

[{
  "id": "81dac958-49cf-487e-8805-d0baf0ee485a",
  "source": "/subscriptions/{subscription-id}/resourceGroups/{your-rg}/providers/Microsoft.ApiManagement/service/{your-APIM-instance}",
  "subject": "/products/myproduct",
  "data": {
    "resourceUri": "/subscriptions/{subscription-id}/resourceGroups/{your-rg}/providers/Microsoft.ApiManagement/service/{your-APIM-instance}/products/myproduct"
  },
  "Type": "Microsoft.ApiManagement.ProductCreated",
  "Time": "2021-07-02T00:38:44.3978295Z",
  "specversion":"1.0"
}]

以下示例显示了用户已删除事件的架构。 其他 API 管理资源删除事件的架构类似。

[{
  "id": "81dac958-49cf-487e-8805-d0baf0ee485a",
  "source": "/subscriptions/{subscription-id}/resourceGroups/{your-rg}/providers/Microsoft.ApiManagement/service/{your-APIM-instance}",
  "subject": "/users/apimuser-contoso-com",
  "data": {
    "resourceUri": "/subscriptions/{subscription-id}/resourceGroups/{your-rg}/providers/Microsoft.ApiManagement/service/{your-APIM-instance}/users/apimuser-contoso-com"
  },
  "Type": "Microsoft.ApiManagement.UserDeleted",
  "Time": "2021-07-02T00:38:44.3978295Z",
  "specversion":"1.0"
}]

以下示例显示了 API 更新事件的架构。 其他 API 管理资源更新事件的架构类似。

[{
  "id": "95015754-aa51-4eb6-98d9-9ee322b82ad7",
  "source": "/subscriptions/{subscription-id}/resourceGroups/{your-rg}/providers/Microsoft.ApiManagement/service/{your-APIM-instance}",
  "subject": "/apis/myapi;Rev=1",
  "data": {
    "resourceUri": "/subscriptions/{subscription-id}/resourceGroups/{your-rg}/providers/Microsoft.ApiManagement/service/{your-APIM-instance}/apis/myapi;Rev=1"
  },
  "Type": "Microsoft.ApiManagement.APIUpdated",
  "Time": "2021-07-12T23:13:44.9048323Z",
  "specversion":1.0
}]

以下示例显示了断路器打开事件的架构。

{
  "source": "/subscriptions/{subscription-id}/resourceGroups/{your-rg}/providers/Microsoft.ApiManagement/service/{your-APIM-instance}",
  "subject": "/backends/{backend-name}/circuit-breaker/rules/{rule-name}",
  "type": "Microsoft.ApiManagement.CircuitBreaker.Opened",
  "time": "2025-04-02T00:47:47.8536532Z",
  "id": "92c502f2-a966-42a7-a428-d3b319844544",
  "data": {
    "backendName": "{backend-name}",
    "circuitBreaker": {
      "rules": {
        "{rule-name}": {
          "tripDuration": "00:00:01"
        }
      }
    }
  },
  "specVersion": "1.0"
}

以下示例显示了网关令牌过期事件的架构。 网关令牌即将过期事件的架构类似,但用 expiresAtUtc 属性替换 expiredAtUtc 属性。

{
  "source": "/subscriptions/{subscription-id}/resourceGroups/{your-rg}/providers/Microsoft.ApiManagement/service/{your-APIM-instance}",
  "subject": "/gateways/{gateway-name}/{instance-name}",
  "type": "Microsoft.ApiManagement.GatewayTokenExpired",
  "time": "2025-04-02T00:47:47.8536532Z",
  "id": "92c502f2-a966-42a7-a428-d3b319844544",
  "data": {
    "gatewayInfo": {
      "gatewayId": "{gateway-name}",
      "instanceId": "{instance-name}"
    },
    "tokenInfo": {
      "expiredAtUtc": "2025-02-25T08:56:00.0000000Z"
    }
  },
  "specVersion": "1.0"
}

事件属性

事件具有以下顶级数据:

资产 类型 DESCRIPTION
source 字符串 事件源的完整资源路径。 此字段不可写入。 事件网格提供此值。
subject 字符串 定义了发布者的事件主题路径。
type 字符串 该事件源的其中一种注册事件类型。
time 字符串 事件生成的时间是基于提供者的 UTC 时间。
id 字符串 事件的唯一标识符。
data 物体 API 管理事件数据。
specversion 字符串 CloudEvents 架构规范版本。

数据对象属性

控制平面事件

data 对象具有以下用于控制平面事件的属性,例如创建、更新和删除 API 管理资源。

资产 类型 DESCRIPTION
resourceUri 字符串 符合性状态更改所针对的资源的完全限定 ID,包括资源名称和资源类型。 使用格式 /subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroup>/Microsoft.ApiManagement/service/<ServiceName>/<ResourceType>/<ResourceName>

断路器事件

data 对象具有以下断路器事件的属性。

资产 类型 DESCRIPTION
backendNme 字符串 在其中配置断路器的后端实体的名称(ID)。
circuitBreaker 物体 在后端配置的断路器,由一个 rules 对象组成,该对象指定了触发断路器的规则。 规则具有 hh:mm:ss 格式的tripDuration属性,指定断路器跳闸的持续时间。

自托管网关身份验证令牌事件

data 对象具有以下自承载网关身份验证令牌事件的属性。

资产 类型 DESCRIPTION
gatewayInfo 物体 自托管网关的信息,包括以下字符串属性:

* gatewayId - 网关资源的完全限定 ID
* instanceId - 已部署网关的唯一实例 ID
tokenInfo 物体 令牌信息,由提供程序 UTC 时间中的以下属性之一组成:

* expiresAtUtc - 用于 GatewayTokenNearExpiry 事件,或
* expiredAtUtc - 用于 GatewayTokenExpired 事件

教程和作方法

标题 DESCRIPTION
将事件从 API 管理发送到事件网格 如何使用事件网格订阅 API 管理事件。

后续步骤