有条件地询问Bicep参数



我正在创建一个用于创建虚拟机的Azure ARM模板/Bicep。该模板将创建Windows和Linux虚拟机。在参数中,我想有条件地询问操作系统SKU,如下所示:

@description('Select the OS type to deploy:')
@allowed([
'Windows'
'Linux'
])
param operatingSystem string
@description('The Ubuntu version (SKU):')
@allowed([
'ubuntu2004'
'ubuntu2004gen2'
])
param ubuntuSKU string
@description('The Desktop Windows version (SKU):')
@allowed([
'win10'
'win11'
])
param windowsSKU string

目前,脚本要求用户同时输入ubuntusSKU和windowsSKU。我只想显示与操作系统参数相对应的参数。

例如,如果用户进入Windows操作系统,Bicep只向用户询问参数windowsSKU。如果用户选择Linux操作系统,Bicep只显示参数ubuntusSKU。

一个解决方法是将ubuntusSKU和windowsSKU结合起来,重构我的其余代码。然而,我更想看看是否有更好、更智能的解决方案。

在二头肌文件中的params中没有依赖性/分支,但有两种方法可以考虑:

  1. 将这些选项组合成一个参数,并在模板中使用字典查找,例如。https://github.com/bmoore-msft/AzureRM-Samples/blob/master/leap-2020/modules/module.ultimate-vm.json#L165-L176-这是有效的,但组合越少越好。

  2. 另一个选项是为模板提供UI,在该UI定义中,您可以在params上设置条件/分支。这很复杂,但如果模板将通过门户部署,效果会很好。。。IDK知道有一个例子可以做到这一点,但它展示了整体UI/体验的一些功能,这些功能可能会有所帮助:https://techcommunity.microsoft.com/t5/azure-governance-and-management/using-azure-templatespecs-with-a-custom-ui/ba-p/3586173

相关内容

  • 没有找到相关文章

最新更新