首先,您应该知道并非所有 azure 资源都可以指定标签,因此您应该在代码中考虑这一点。请参阅Azure 资源的标记支持以检查哪个 azure 资源支持标记。
对于 powershell 查询,我建议使用新的 azure powershell az 模块而不是旧的azureRM 模块。
这是一个带有az module的简单 powershell 代码。出于测试目的,我只介绍如何获取标签并将其添加到输出中。请随时根据您的要求进行更改。
#for testing purpose, I just get the azure activity logs from a specified resource group
$mylogs = Get-AzLog -ResourceGroupName "a resource group name"
foreach($log in $mylogs)
{
if(($log.Properties.Content.Values -ne $null))
{
#the tags is contains in the Properties of the log entry.
$s = $log.Properties.Content.Values -as [string]
if($s.startswith("{"))
{
$log | Select-Object EventTimeStamp, Caller, SubscriptionId,@{name="Operation"; Expression = {$_.operationname.LocalizedValue}}, @{name="tags"; Expression = {($s | ConvertFrom-Json).tags}}
}
#if it does not contains tags.
else
{
$log | Select-Object EventTimeStamp, Caller, SubscriptionId,@{name="Operation"; Expression = {$_.operationname.LocalizedValue}}, @{name="tags"; Expression = {""}}
}
}
#if it does not contains tags.
else
{
$log | Select-Object EventTimeStamp, Caller, SubscriptionId,@{name="Operation"; Expression = {$_.operationname.LocalizedValue}}, @{name="tags"; Expression = {""}}
}
Write-Output "************************"
}
测试结果:
对于 python,您可以查看这个 github 问题,该问题介绍了如何从 azure 活动日志中获取日志,但您需要对如何向输出添加标签进行一些研究。
希望能帮助到你。