gpt4 book ai didi

azure - 在 Azure ARM 模板中使用空/可选参数

转载 作者:行者123 更新时间:2023-12-01 13:17:56 25 4
gpt4 key购买 nike

我在为 Azure Web Apps 设置 ARM 模板时遇到问题,因为如果设置了参数,我无法在设置值的位置添加 ConnectionString 参数,但如果未设置参数,则保留空白(默认) .

这是它在 template.json 文件中的外观:

"connectionStrings": [
{
"name": "[parameters('connString').connName)]",
"connectionString": "[parameters('connString').string]",
"type": "[parameters('connString').connType]"
}
],

在parameters.json文件中:

"connString": {
"value": {
"connName": "",
"string": "",
"connType": ""
}
},

使用上述内容运行部署时,会因“参数名称不能为空”而失败我尝试使用 equals 函数,如果参数为空,则将值设置为空,但如果参数已填写,则设置参数,但它不喜欢空值。

"name": "[if(equals(parameters('connString').connName,''),'',parameters('connString').connName)]"

还尝试了一个空函数:

 "name": "[not(empty(parameters('connString').connName))]"

但是,如果为空,则返回“False”;如果设置了参数(按设计),则返回“True”

如果我设置虚拟值作为参数,部署工作正常,是否可以设置一个函数或类似的东西,因此如果参数为空,它将使用发送的任何值,就好像模板中不存在 connectionStrings 部分一样?这些参数是可选的,但看起来是因为它们位于实际的 template.json 文件中,并且需要一个值。

干杯

编辑将发布我的最终模板,以防其他人需要帮助。

模板文件

变量

"variables": {
"empty": []
},

资源

"connectionStrings": "[if(empty(parameters('connString')), variables('empty'), array(parameters('connString')))]",

参数文件

如果设置连接字符串

 "connString": {
"value": [{
"name": "test",
"connectionString": "ufgndjkngsdgjkn",
"type": "Custom"
}]
},

如果不想设置连接字符串

"connString": {
"value": [
]
},

最佳答案

你应该这样做:

参数:

"connString": {
"value": {}
},

变量:

"empty": [],

模板:

"connectionStrings": "[if(empty(parameters('connString')), variables('empty'), array(parameters('connString')))]"

关于azure - 在 Azure ARM 模板中使用空/可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52884443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com