Bicep和json参数在变量中添加新变量

ktca8awb  于 2023-02-26  发布在  其他
关注(0)|答案(2)|浏览(126)

我想用bicep的json参数文件中的现有变量创建一个新变量

{
    "myVNet_name": "test_vnet",
    "myVNet_name2": "????",
}

例如,我希望myVNet_name2等于$myVNet_name_2,如何实现?

0ve6wy6x

0ve6wy6x1#

这是纯粹的二头肌。

var myVNet_name_2 = 'Some Value'

var myObj = { 'myVNet_name ': 'test_vnet',  'myVNet_name2 ': '${myVNet_name_2}'}

如果您有Bicep正在使用的Json配置文件,您可以执行以下操作(Json文件):

{ "myVNet_name": "test_vnet",  "myVNet_name2": "{{DynamicValueHere}}"}

我倾向于自己使用{{}}占位符,这样在Json中很明显什么值是动态的。自然地,给予它一个有意义的名称,而不是DynamicValueHere
在您的YAML中(假设您有YAML),您可以沿着以下代码行调用某个内联PowerShell或ps1文件:

$vnetFile = "myArifactsFolder/vnetFile.json"
  $newFile = Get-Content $vnetFile 
  $newFile.replace("{{DynamicValueHere}}", $vnetName) | Out-File -FilePath $vnetFile

在YAML PowerShell任务之后,您可以调用Bicep任务,该任务将使用替换了值的文件。
我经常在环境(开发、测试、生产)中这样做,在这些环境中,Json文件通常具有99%相同的值,而不是特定于环境的资源名称,例如mystorage-uks-devmystorage-uks-test

wbgh16ku

wbgh16ku2#

找到答案,不能重用json中的变量,而不是yaml文件

相关问题