如何通过Azure Resource Graph获取函数应用内的全部函数?
如何通过Azure Resource Graph获取函数应用的所有函数?
一、查询ARM级别的函数资源
如果你的函数是通过Azure门户手动创建、ARM模板部署或Terraform等基础设施即代码工具部署的,这类函数会以Microsoft.Web/sites/functions类型的ARM资源存在,可直接用以下Resource Graph查询获取:
resources | where type == 'microsoft.web/sites/functions' | project 函数名称 = name, 所属函数应用 = split(id, '/')[8], 资源组 = resourceGroup, 订阅ID = subscriptionId
如果之前用这个类型查询无结果,大概率是以下原因:
- 权限不足:当前账号没有目标订阅/资源组的
Reader或更高权限,导致Resource Graph无法返回对应资源 - 函数非ARM资源:如果函数是通过部署包(Zip部署、CI/CD流水线上传)创建的,这类函数属于运行时资源,不会被注册为ARM资源,因此无法通过Resource Graph查询到
二、关联函数应用与对应函数
如果需要同时查看函数应用及其关联的ARM级别函数,可使用关联查询:
resources | where type == 'microsoft.web/sites' and properties.kind == 'functionapp' | join kind=leftouter ( resources | where type == 'microsoft.web/sites/functions' | project 函数名称 = name, 函数应用ID = id ) on $left.id == $right.函数应用ID | project 函数应用名称 = name, 函数名称, 资源组 = resourceGroup, 订阅ID = subscriptionId
三、获取运行时函数(非ARM资源)
对于部署包创建的运行时函数,Resource Graph无法直接获取,需通过Azure CLI或PowerShell调用函数应用的管理API获取,示例Azure CLI命令:
az functionapp function list --name <函数应用名称> --resource-group <资源组名称>
内容的提问来源于stack exchange,提问作者MaelleL
相关产品推荐
相关产品推荐

