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

问题描述 投票:1回答:3

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

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

目标是重现这个绿色钩子

enter image description here

json azure azure-resource-manager arm-template azure-marketplace
3个回答
1
投票

几个笔记......

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

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

这种帮助?


1
投票

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

没有验证方案。


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,它不会验证名称可用性。

希望这可以帮助!

© www.soinside.com 2019 - 2024. All rights reserved.