我用二头肌迈出了第一步,但我觉得完全卡住了:-/
我想从应用服务获取公共ip,然后,我想用它们限制对存储帐户的访问。我面临两个问题:
- 第一个是我不能迭代“for”循环。它说“allowedIPAddress”,“这个表达式正在用于for-expression,它需要一个可以在部署开始时计算的值。你引用了一个无法计算的变量”
- 第二个,我如何更新存储的IpRules后,我已经获得了规则与IP??
下面是我的代码:
////// FIRST PART: TO GET THE APP SERVICE IP
resource sitewww 'Microsoft.Web/sites@2022-03-01' existing = {
name: 'mywebapp'
}
//Here I get the list of IPs
var ipSalidaString = string(sitewww.properties.outboundIpAddresses)
//I split the IPs list to an Array String, so I can use it
var allowedIpAddresses = split(ipSalidaString,',')
/// THIS FOR LOOP DOES NOT WORK AND I DO NOT KNOW WHY
var additionalIpSecurityRestrictions = [for ip in allowedIpAddresses: {
action: 'Allow'
value: ip
}]
////// Second Part: Update the IpRules of the Storage Account
resource almacenamiento 'Microsoft.Storage/storageAccounts@2022-09-01'{
name: 'teststorage'
location:localizacion
properties:{
publicNetworkAccess: 'Enabled'
networkAcls:{
defaultAction:'Deny'
ipRules: [{ /// MUST BE UPDATED
action: 'Allow'
value: '20.26.196.151'
}
]
}
}
}
我尝试了几种方法来迭代for循环,但总是说“这个表达式正在for表达式中使用,它需要一个可以在部署开始时计算的值。您正在引用一个无法计算的变量”
我希望为我的存储帐户创建具有IpRules的对象
1条答案
按热度按时间njthzxwz1#
我建议将该AppService加入VNet,然后使用服务端点限制对存储帐户的访问。应用服务计划的公共IP可能会更改,这样您就不必费心更新规则。