如何计算 Azure Policy 中具有特定标签的存储帐户的数量?

How to count the number of storage accounts having specific tag in Azure Policy?

我想为存储帐户创建一个 Azure Policy。在创建存储帐户的过程中,它会计算订阅中具有特定标签(如 env:dev)的存储帐户的数量。如果此计数的数量超过 10,它应该拒绝创建该存储帐户。

我如何计算Azure Policy[=19]中具有特定标签的存储帐户的数量=]声明?

使用 Azure Policy 无法做到这一点。

尽管该方法似乎有效,但 count 运算符旨在与 [*] aliases 一起使用 - 请参阅 official documentation。人们可能会想到扫描 Microsoft.Subscription 别名,但是 运行 命令 az provider show --namespace Microsoft.Subscription --expand "resourceTypes/aliases" --query "resourceTypes[].aliases[].name",你得到的输出到目前为止并不广泛:

[
  "Microsoft.Subscription/SubscriptionDefinitions/subscriptionId",
  "Microsoft.Subscription/SubscriptionDefinitions/subscriptionDisplayName",
  "Microsoft.Subscription/SubscriptionDefinitions/offerType",
  "Microsoft.Subscription/SubscriptionDefinitions/etag",
  "Microsoft.Subscription/aliases/subscriptionId"
]

此外,策略引擎的工作方式不允许您计算满足特定规则的实例数:每个 ARM 组件都被单独扫描并与策略中定义的规则进行比较。您看不到“给定范围内的所有存储帐户”——扫描每个帐户时都看不到全貌。这就是为什么我开始查看订阅对象是否有类似 Resources [*] 别名的原因。