我想用bicep的json参数文件中的现有变量创建一个新变量
{ "myVNet_name": "test_vnet", "myVNet_name2": "????", }
例如,我希望myVNet_name2等于$myVNet_name_2,如何实现?
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文件:
{{}}
DynamicValueHere
$vnetFile = "myArifactsFolder/vnetFile.json" $newFile = Get-Content $vnetFile $newFile.replace("{{DynamicValueHere}}", $vnetName) | Out-File -FilePath $vnetFile
在YAML PowerShell任务之后,您可以调用Bicep任务,该任务将使用替换了值的文件。我经常在环境(开发、测试、生产)中这样做,在这些环境中,Json文件通常具有99%相同的值,而不是特定于环境的资源名称,例如mystorage-uks-dev、mystorage-uks-test等
mystorage-uks-dev
mystorage-uks-test
wbgh16ku2#
找到答案,不能重用json中的变量,而不是yaml文件
2条答案
按热度按时间0ve6wy6x1#
这是纯粹的二头肌。
如果您有Bicep正在使用的Json配置文件,您可以执行以下操作(Json文件):
我倾向于自己使用
{{}}
占位符,这样在Json中很明显什么值是动态的。自然地,给予它一个有意义的名称,而不是DynamicValueHere
。在您的YAML中(假设您有YAML),您可以沿着以下代码行调用某个内联PowerShell或ps1文件:
在YAML PowerShell任务之后,您可以调用Bicep任务,该任务将使用替换了值的文件。
我经常在环境(开发、测试、生产)中这样做,在这些环境中,Json文件通常具有99%相同的值,而不是特定于环境的资源名称,例如
mystorage-uks-dev
、mystorage-uks-test
等wbgh16ku2#
找到答案,不能重用json中的变量,而不是yaml文件