Azure Bicep存储App Service出站IP到参数遇报错求解决方案
问题解决:Bicep参数无法引用资源属性的处理方案
你遇到的错误是因为Bicep的参数默认值规则:参数的默认值只能引用其他参数或常量值,不能直接引用资源的属性——参数是在部署启动前就解析的,这时候目标资源还没创建,自然没法获取它的属性值。
正确的做法是用**变量(variable)**来存储动态获取的资源属性,变量是在部署过程中(资源创建完成后)求值的,可以正常引用资源属性。修改后的代码如下:
resource sitewww 'Microsoft.Web/sites@2022-03-01' = { name: 'sitewwwname' location: 'westeurope' // 注意:实际部署需要补充必要属性,比如serverFarmId(App Service Plan的ID) properties: { serverFarmId: '<你的App Service Plan资源ID>' } } // 用变量存储出站IP字符串 var outboundIpString = sitewww.properties.outboundIpAddresses // 拆分字符串为IP数组 var allowedIpAddresses = split(outboundIpString, ',')
如果后续需要在其他资源配置中使用这个IP数组,直接引用allowedIpAddresses变量即可。
内容的提问来源于stack exchange,提问作者Marta SL
相关产品推荐
相关产品推荐

