【发布时间】:2018-08-20 03:53:03
【问题描述】:
我需要在我的 ARM 模板中使用租户(目录租户)名称(尤其是在创建 Web 应用程序时)。
可以使用subscription().displayName 获取订阅名称,但是如何获取关联的目录租户名称?[subscription().tenantId.displayName] 或 [subscription().tenantId.Name] 之类的表达式不起作用,我也无法在网络上找到此属性的任何存在。
我不会对其进行硬编码的方式是订阅所有者或帐户管理员可以轻松更改它,这就是我寻找一些现有变量\参数\等的原因
【问题讨论】:
-
因此您需要将其作为参数传入或从某些资源属性中读取
-
我不想使用硬编码的对象。您能否更准确一点 - 例如,哪个资源具有
tenant name属性? -
不是一个(据我所知),但您可以创建一个资源并将其属性之一设置为租户名称。另外,从什么时候开始硬编码参数?顺便说一句,您可以创建一个仅输出租户名称的假模板并进行部署。之后,您可以在模板中读取其输出。这实际上是硬编码
-
我会尝试更有说服力 - 因为
tenant name无法从 ARM 模型中的任何内部对象中获取,唯一的方法是手动指定它。想象一下,帐户管理员或订阅所有者\全局管理员一天更改了目录名称 - 我所有依赖此(旧)名称的代码都将失败。如何确保始终拥有“新鲜”的目录名称?鉴于名称将来可能会更改,如何创建资源并将其属性设置为租户名称? -
你不能。没有 arm 函数。您唯一能做的就是创建一个 powershell\whatever 脚本来动态获取该数据并将其作为参数传递。 tbh,你不应该使用租户名称。
标签: azure azure-resource-manager arm-template