如何用Azure PowerShell查询Application Insights与Log Analytics工作区的关联
查找未关联Log Analytics工作区的Application Insights实例
要筛选出尚未迁移到基于工作区的Application Insights(AI)实例,关键是利用AI实例的WorkspaceResourceId属性——该属性会存储关联的Log Analytics工作区资源ID,未迁移的实例此属性为空。以下是具体的PowerShell操作步骤:
1. 获取所有Application Insights实例
使用Get-AzApplicationInsights cmdlet获取订阅内所有AI实例:
$allAIInstances = Get-AzApplicationInsights
2. 筛选未迁移的实例
通过判断WorkspaceResourceId是否为空,筛选出未关联工作区的AI实例:
$unmigratedAI = $allAIInstances | Where-Object { [string]::IsNullOrEmpty($_.WorkspaceResourceId) }
3. 输出未迁移实例的关键信息
可选择输出实例名称、资源组、位置等核心信息:
$unmigratedAI | Select-Object Name, ResourceGroupName, Location
额外:查看已关联的工作区信息
若需要验证已迁移实例的关联工作区,可通过WorkspaceResourceId查询对应工作区详情:
$migratedAI = $allAIInstances | Where-Object { -not [string]::IsNullOrEmpty($_.WorkspaceResourceId) } foreach ($ai in $migratedAI) { $linkedWorkspace = Get-AzOperationalInsightsWorkspace -ResourceId $ai.WorkspaceResourceId Write-Host "AI实例 [$($ai.Name)] 关联的Log Analytics工作区: [$($linkedWorkspace.Name)]" }
若Get-AzApplicationInsights返回的属性未显示WorkspaceResourceId,也可通过Get-AzResource直接查询资源属性:
Get-AzResource -ResourceType "Microsoft.Insights/components" | Where-Object { -not $_.Properties.WorkspaceResourceId } | Select-Object Name, ResourceGroupName, @{Name="是否关联工作区"; Expression={ if ($_.Properties.WorkspaceResourceId) { "是" } else { "否" } }}
内容的提问来源于stack exchange,提问作者ScubaManDan
相关产品推荐
相关产品推荐

