本文介绍当工作流由 Service Health 停用事件触发时,应如何将该信号关联到受影响的资源。 如果已通过 API、工作簿或建议窗格使用Azure 顾问停用建议,请直接使用这些通道获取受影响的资源详细信息(如果可用)。
概念模型:信号→操作
| 层 | Azure服务 | 责任 |
|---|---|---|
| 信号 | Azure 服务运行状况 | 宣布服务停用(跟踪 ID、时间线) |
| 加入 | Azure Resource Graph | 将信号与修正数据相关联 |
| Action | Azure 顾问 | 标识受影响的资源和指南 |
Azure Resource Graph充当服务生命周期感知和执行之间支持的集成点。
何时使用 ARG 与 Advisor API
- 当工作流从服务运行状况停用跟踪 ID 开始,且你需要将该信号关联到跨订阅的受影响资源时,请使用 ARG。
- 当您已在使用弃用建议,并且需要受影响资源的详细信息时,请使用 顾问 API/工作簿/建议 窗格。
Prerequisites
- 对目标 Azure 订阅的访问权限
- 访问 Azure Resource Graph Explorer
- 熟悉基本的 *Kusto 查询语言(KQL)
- Azure 公有云适用范围(如果适用于与当前公开指南相同的渠道支持)
- 跟踪 ID 源 (工作流中的来源)
- 报道注意事项 (受影响的资源可用性不全面)
- 对目标订阅的读取者访问权限
- ARG 资源管理器 或等效的 ARG 执行路径
注释
此模式取决于 Azure Resource Graph 中是否已提供受支持的弃用元数据。
使用的数据源
| ARG 表 | 说明 |
|---|---|
| ServiceHealthResources | 服务退役生命周期事件 |
| AdvisorResources | 服务退役建议 |
Advisor 推荐的元数据示例负载
{
"id": "/providers/Microsoft.Advisor/metadata/e877d6d4-e952-4f8a-a4c4-5f90e5ac1da9",
"name": "e877d6d4-e952-4f8a-a4c4-5f90e5ac1da9",
"type": "microsoft.advisor/metadata",
"properties": {
"recommendationTypeId": "e877d6d4-e952-4f8a-a4c4-5f90e5ac1da9",
"recommendationSubCategory": "ServiceUpgradeAndRetirement",
"resourceMetadata": {
"action": {
"recommendedActionButtonText": "",
"actionApplicabilityScope": "",
"isRecommendedAction": false,
"description": null,
"actionType": "Blade",
"extensionName": "HubsExtension",
"actionId": "051cfb90-f2d9-4efa-a2ac-fe7a6ead9d4e",
"caption": null,
"bladeName": "ResourceMenuBlade",
"metadata": {
"id": "{resourceId}"
}
},
"singular": "Availability test",
"plural": "Availability tests"
},
"exposedMetadataProperties": {
"SupportedSDKLanguages": null,
"AdditionalColumns": null,
"CostSavingInfo": null,
"Tip": null
},
"recommendationCategory": "HighAvailability",
"supportedResourceType": "microsoft.insights/webtests",
"recommendationImpact": "Medium",
"detailedDescription": "To ensure you can continue to run single-step availability tests in your application insights resources, transition to standard tests. Ping tests are removed from your resources. ",
"recommendationScope": "Public",
"potentialBenefits": "Avoid potential disruptions and use new capabilities",
"recommendationDataSourceQuery": "resources | where type == 'microsoft.insights/webtests' and properties.Kind == 'ping' | project subscriptionId, id",
"learnMoreLink": "https://azure.microsoft.com/updates?id=transition-to-using-standard-tests-for-singlestep-availability-testing-in-azure-monitor-application-insights-by-30-september",
"displayName": "The URL ping test capability of the application insights feature for Azure Monitor is being retired.",
"priorityScore": 0.94,
"lastRefreshed": "2026-06-23T10:57:47.3066458Z",
"language": "en",
"actions": [
{
"recommendedActionButtonText": "",
"actionApplicabilityScope": "",
"isRecommendedAction": false,
"description": "Transition to using standard tests",
"actionType": "Document",
"actionId": "654f0880-edd0-4eea-9265-d2153628e197",
"caption": "Transition to using standard tests",
"isPostfixRequired": false,
"documentLink": "/azure-monitor/app/availability?tabs=standard"
}
],
"recommendationIngestionType": "Automated",
"label": "The URL ping test capability of the application insights feature for Azure Monitor is being retired.",
"sourceProperties": {
"serviceRetirement": {
"retirementFeatureName": "Single URL Ping Test",
"retirementDate": "2026-09-30T00:00:00Z",
"serviceHealth": {
"trackingIds": [
"3KYM-7_G"
],
"ashUrls": [
"https://app.azure.com/h/3KYM-7_G/"
]
}
}
}
}
}
查询:与服务运行状况事件联接(完整信号 + 操作视图)
// Get Service Retirement metadata mappings: TrackingId -> RecommendationTypeId
advisorresources
| where type == "microsoft.advisor/metadata"
| extend props = parse_json(properties)
| where props.recommendationCategory == "HighAvailability"
| where props.recommendationSubCategory == "ServiceUpgradeAndRetirement"
| where isnotempty(props.sourceProperties.serviceRetirement.serviceHealth.trackingIds)
| mv-expand trackingId = props.sourceProperties.serviceRetirement.serviceHealth.trackingIds
| extend trackingId = tostring(trackingId)
| extend recommendationTypeId = tostring(props.recommendationTypeId)
| distinct trackingId, recommendationTypeId
| join kind=inner (
// Get active Service Retirement recommendations: RecommendationTypeId -> impacted resources
advisorresources
| where type == "microsoft.advisor/recommendations"
| extend props = parse_json(properties)
| where props.extendedProperties.recommendationSubCategory == "ServiceUpgradeAndRetirement"
| where isempty(props.tracked)
| where tostring(props.platformState) == "New"
| extend recommendationTypeId = tostring(props.recommendationTypeId)
| extend resourceId = tolower(tostring(props.resourceMetadata.resourceId))
| distinct recommendationTypeId, resourceId, subscriptionId
) on recommendationTypeId
| join kind=inner (
// Get Service Health event details
servicehealthresources
| where type =~ "microsoft.resourcehealth/events"
| extend props = parse_json(properties)
| where tostring(props.EventType) == "HealthAdvisory"
| extend trackingId = tostring(props.TrackingId)
| extend title = tostring(props.Title)
| extend status = tostring(props.Status)
| extend retirementDate = todatetime(props.ImpactMitigationTime)
| distinct trackingId, ['title'], status, retirementDate, subscriptionId
) on trackingId
| distinct resourceId, ['title'], retirementDate, status, trackingId
查询示例载荷
{
"resourceId": "/subscriptions/f2a74056-fc6e-41fd-ae49-248688b52f01/resourcegroups/rg-loadtesting/providers/microsoft.storage/storageaccounts/rgloadtestinga4ee",
"title": "Retirement notice: Migrate your legacy Azure general-purpose v1 account to a general-purpose v2 account",
"retirementDate": "2026-10-13T00:00:00Z",
"status": "Active",
"trackingId": "XTKT-BW8"
}
如何运行查询
使用跟踪 ID 标识事件
每个Azure 服务运行状况事件都具有唯一的跟踪 ID。
- 此 ID 连接与该事件相关的所有更新和事件。
- 使用它快速查找所有相关消息并跟踪进度,直到问题得到解决。
在 Resource Graph 资源管理器中运行查询
若要检索有关事件或相关资源的详细信息,请在Azure Resource Graph资源管理器中运行提供的查询。
查看结果中的关键信息
运行查询(或检查 API)时,请查找以下重要详细信息:
- 服务运行状况状态
- 跟踪编号
- 受影响的资源
- 停用日期
- 停用功能
- 任何其他建议的详细信息
检查Azure 顾问中受影响的资源
还可以在Azure门户中查看受影响的资源。
- 转到Azure 顾问
- 打开“可靠性”部分
- 按子类别筛选 =
ServiceUpgradeAndRetirement
然后,按照建议的操作措施来解决或消除停用带来的影响。
有什么作用
- 以编程方式标识受服务停用影响的资源。
- 退休准备情况仪表板和报告。
- 使用逻辑应用或 Runbook 实现用于跟踪的自动修复。
- 无需针对每个团队设置关联逻辑,即可实现统一的客户模式。
总结
- Azure 服务运行状况告诉你正在改变什么。
- Azure 顾问告诉你该怎么做。
- Azure Resource Graph使用支持的平台功能连接这两个。
此模式还可用于维护、安全公告和重大更改。