您是否可以在任何地方获得Azure提供的所有资源类型的完整列表?我正在进行策略/角色管理,似乎没有一个好地方可以查找所有资源类型。目前我一直在使用Get-AzureRmProviderOperation
,但这仍然没有显示一切。例如,Microsoft.Botservice
没有选项
请注意,如果您想查看模板参考,那么您可以访问https://docs.microsoft.com/en-us/azure/templates/。请注意,截至此日期,缺少某些资源类型(例如“SendGrid.Email/accounts”)
您可以使用Providers - List API和$expand=resourceTypes/aliases
查询参数来为您提供所需的一切。
您可以通过以下方式获取所有资源类型:在返回的每个提供程序中附加namespace
和resourceTypes[*].resourceType
2.每个别名的名称已经是资源类型名称
这是一个简单的nodejs脚本,用于获取排序到文件中的所有资源类型
const fs = require('fs');
var a = <resource-provider-api-response-as-json-object>;
let final = [];
var b = a.value.forEach(p => {
let ns = p.namespace;
let rsts = p.resourceTypes.map(rst => ns + '/' + rst.resourceType);
final = final.concat(rsts);
p.resourceTypes.forEach(rst => {
let aliases = rst.aliases.map(a => a.name)
final = final.concat(aliases);
});
});
final.sort();
fs.writeFile("random.data", final.join('\n'), function(err) {
if(err) {
return console.log(err);
}
console.log("The file was saved!");
});
此外,如果您使用bash
与az
和jq
安装,你可以简单地运行这:)
az provider list --expand resourceTypes/aliases | jq '[ .[].namespace + "/" + .[].resourceTypes[].resourceType , .[].resourceTypes[].aliases[]?.name ] | unique | sort' | less
您也可以将输出管道传输到文件中,以便在其他脚本中使用。