如何检查名称是否已存在? Azure资源管理器模板

时间:2018-02-27 10:52:58

标签: json azure azure-resource-manager arm-template azure-marketplace

是否可以在ARM模板中检查 如果我的虚拟机的名称已经存在

我正在为Azure Marketplace开发解决方案模板。也许可以在 UiDefinition uniqe中设置参数?

目标是重现这个绿色钩子

enter image description here

3 个答案:

答案 0 :(得分:1)

根据documentation,这看起来不可能。

没有任何验证方法。

答案 1 :(得分:1)

有几个笔记......

  • VM名称只需要在resourceGroup中是唯一的,而不是在订阅
  • 解决方案模板必须部署到空资源组,因此无法与现有资源发生冲突
  • 对于解决方案模板,首选项是您只需为用户命名VM,而不是要求 - 使用适合工作负载的内容(例如跳转框) - 并非所有解决方案都这样做但我们正在尝试改进那次经历

鉴于我们不太可能构建一个控制来检查资源上的命名冲突而没有全局唯一约束。

那有帮助吗?

答案 2 :(得分:0)

我假设您应该在createUiDefinition.json中使用 Microsoft.Common.TextBox UI 元素。

我尝试通过如下所示使用 Microsoft.Common.TextBox UI 元素创建一个简单的createUiDefinition.json来重现绿色检查。

{
  "$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json",
  "handler": "Microsoft.Compute.MultiVm",
  "version": "0.1.2-preview",
  "parameters": {
    "basics": [
      {
        "name": "textBoxA",
        "type": "Microsoft.Common.TextBox",
        "label": "VM Name",
        "defaultValue": "",
        "toolTip": "Please enter a VM name",
        "constraints": {
            "required": true
        },
        "visible": true
      }
    ],
    "steps": [],
    "outputs": {}
  }
}  

我可以在VM Name文本框旁边重现绿色检查,如下所示: enter image description here

但是,此绿色检查并不意味着VM名称可用。 这是因为根据我的测试,即使我在同一订阅中使用现有的VM名称,它仍然显示绿色检查。

根据 Microsoft.Common.TextBox UI元素支持的官方文档constraints不会验证名称可用性

希望这有帮助!