Azure 订阅上的 Azure EventGrid - 确定哪个标记已更改
Azure EventGrid on Azure Subscription - determine which tag has changed
我正在尝试为 Azure 订阅设置 Azure EventGrid,以便在资源的特定标记发生更改时收到通知。
这就是我创建 EventGrid 订阅的方式:
$includedEventTypes = , 'Microsoft.Resources.ResourceWriteSuccess'
New-AzEventGridSubscription `
-EventSubscriptionName mySubscriptionName `
-ResourceGroupName myResourceGroup `
-Endpoint myEndpoint `
-IncludedEventType $includedEventTypes
现在,如果我在 Azure Web 应用程序上更改标签,我会收到以下事件:
{
"subject": "/subscriptions/mySubId/resourceGroups/eventgrid/providers/Microsoft.Web/sites/wd-eventgrid-viewer",
"eventType": "Microsoft.Resources.ResourceWriteSuccess",
"eventTime": "2019-06-03T08:50:47.7469859Z",
"id": "f193df79-6755-42c7-b663-91bc373a80e5",
"data": {
"authorization": {
"scope": "/subscriptions/mySubId/resourceGroups/eventgrid/providers/Microsoft.Web/sites/wd-eventgrid-viewer",
"action": "Microsoft.Web/sites/write",
"evidence": {
"role": "Subscription Admin"
}
},
"claims": {
....
},
"correlationId": "9a1bb49f-9f39-4e98-918c-dfe0655b895a",
"httpRequest": {
"clientRequestId": "8bf9bfdb-6e65-4c55-84f2-3f4e05b340d0",
"clientIpAddress": "......",
"method": "PATCH",
"url": "https://management.azure.com/subscriptions/mySubId/resourceGroups/eventgrid/providers/Microsoft.Web/sites/wd-eventgrid-viewer?api-version=2015-08-01"
},
"resourceProvider": "Microsoft.Web",
"resourceUri": "/subscriptions/mySubId/resourceGroups/eventgrid/providers/Microsoft.Web/sites/wd-eventgrid-viewer",
"operationName": "Microsoft.Web/sites/write",
"status": "Succeeded",
"subscriptionId": "mySubId",
"tenantId": "...."
},
"dataVersion": "2",
"metadataVersion": "1",
"topic": "/subscriptions/mySubId"
}
遗憾的是,我没有看到标签发生了变化,也没有看到哪个标签发生了变化。有没有什么方法可以接收资源的哪个标签已更改,或者我是否必须在事件发生后手动查询标签?
Azure Subscription Events 为记录的资源操作、删除或写入发出。
您只会获得必须用于获取更改的资源详细信息。
如您所想,您必须将这些详细信息与 Resources API 一起使用才能获取标签。
更新: 有一个新的 API 到 get resource changes,您可以使用它来检测对资源所做的确切更改。 请注意 此功能目前处于 public 预览阶段。
我正在尝试为 Azure 订阅设置 Azure EventGrid,以便在资源的特定标记发生更改时收到通知。
这就是我创建 EventGrid 订阅的方式:
$includedEventTypes = , 'Microsoft.Resources.ResourceWriteSuccess'
New-AzEventGridSubscription `
-EventSubscriptionName mySubscriptionName `
-ResourceGroupName myResourceGroup `
-Endpoint myEndpoint `
-IncludedEventType $includedEventTypes
现在,如果我在 Azure Web 应用程序上更改标签,我会收到以下事件:
{
"subject": "/subscriptions/mySubId/resourceGroups/eventgrid/providers/Microsoft.Web/sites/wd-eventgrid-viewer",
"eventType": "Microsoft.Resources.ResourceWriteSuccess",
"eventTime": "2019-06-03T08:50:47.7469859Z",
"id": "f193df79-6755-42c7-b663-91bc373a80e5",
"data": {
"authorization": {
"scope": "/subscriptions/mySubId/resourceGroups/eventgrid/providers/Microsoft.Web/sites/wd-eventgrid-viewer",
"action": "Microsoft.Web/sites/write",
"evidence": {
"role": "Subscription Admin"
}
},
"claims": {
....
},
"correlationId": "9a1bb49f-9f39-4e98-918c-dfe0655b895a",
"httpRequest": {
"clientRequestId": "8bf9bfdb-6e65-4c55-84f2-3f4e05b340d0",
"clientIpAddress": "......",
"method": "PATCH",
"url": "https://management.azure.com/subscriptions/mySubId/resourceGroups/eventgrid/providers/Microsoft.Web/sites/wd-eventgrid-viewer?api-version=2015-08-01"
},
"resourceProvider": "Microsoft.Web",
"resourceUri": "/subscriptions/mySubId/resourceGroups/eventgrid/providers/Microsoft.Web/sites/wd-eventgrid-viewer",
"operationName": "Microsoft.Web/sites/write",
"status": "Succeeded",
"subscriptionId": "mySubId",
"tenantId": "...."
},
"dataVersion": "2",
"metadataVersion": "1",
"topic": "/subscriptions/mySubId"
}
遗憾的是,我没有看到标签发生了变化,也没有看到哪个标签发生了变化。有没有什么方法可以接收资源的哪个标签已更改,或者我是否必须在事件发生后手动查询标签?
Azure Subscription Events 为记录的资源操作、删除或写入发出。
您只会获得必须用于获取更改的资源详细信息。
如您所想,您必须将这些详细信息与 Resources API 一起使用才能获取标签。
更新: 有一个新的 API 到 get resource changes,您可以使用它来检测对资源所做的确切更改。 请注意 此功能目前处于 public 预览阶段。