我正在尝试使用二头肌管理我的 Azure 资源。我当前部署的资源组还有一些外部管理的资源,包括 vnet(外部管理,因此在我的二头肌模板中将其标记为 es
existing
)。
我需要使用 bicep 部署的 azure Function 应用程序,以便为出站流量注入现有的 vnet(外部管理)。我知道当您创建函数应用程序时如何在 Azure UI 中执行此操作:您需要将“启用网络注入”选择为“打开”,然后从下拉列表中选择您的子网。然后它在 UI 中看起来就像这样
这是预期的结果。但我的二头肌做不到。尝试了以下方法:
选项 1:
resource azFunction 'Microsoft.Web/sites@2023-01-01' = {
name: name
.....
properties: {
enabled: true
serverFarmId: appServicePlan.id
reserved: true
publicNetworkAccess: 'Disabled'
virtualNetworkSubnetId: vNet.id
选项2:
resource azFunction 'Microsoft.Web/sites@2023-01-01' = {
name: name
.....
properties: {
enabled: true
serverFarmId: appServicePlan.id
reserved: true
publicNetworkAccess: 'Disabled'
virtualNetworkSubnetId: vNet.properties.subnets[0].id
(因此尝试 vnet 本身和该 vnet 的唯一子网)
选项 3:
resource azFunctionVnetConnection 'Microsoft.Web/sites/virtualNetworkConnections@2023-01-01' = {
parent: azFunction
name: 'vnetconnection'
properties: {
vnetResourceId: vNet.id
isSwift: false
}
}
选项 4:
resource azFunctionVnetConnection 'Microsoft.Web/sites/virtualNetworkConnections@2023-01-01' = {
parent: azFunction
name: 'vnetconnection'
properties: {
vnetResourceId: vNet.properties.subnets[0].id
isSwift: false
}
}
还有 vnet 及其唯一的子网。还是看到这样的东西:
所以问题是:如何在二头肌中进行虚拟网络集成,因为它是从 UI 完成的?
afaik,这应该可以解决问题:
param functionVNetID string = '/subscriptions/subXX/resourceGroups/rgXX/providers/Microsoft.Network/virtualNetworks/vnetXX/subnets/subnetXX'
resource functionAppName_virtualNetwork
'Microsoft.Web/sites/networkConfig@2022-09-01' = {
parent: functionApp
name: 'virtualNetwork'
properties: {
subnetResourceId: functionVNetID
}
}