I have a terrible memory so this blog post is mainly to remind me how to VNet Integrate Azure SQL.
The code below is creating an Azure SQL Server and VNet integrating it - the VirtualNetworkRule is the key part and the following is how to go about it.
I use this existing Bicep repo for all of the Bicep that I write - https://github.com/Azure/ResourceModules/
@description(‘Deploy an Azure SQL Server’) module createAzureSQL ‘modules/azuresql_modules/deploy.bicep’ = if (deployAzureSQL) { scope: resourceGroup(dataTierRg) name: azureSQLServerName params: { name: azureSQLServerName location: sqllocation administratorLogin: azureSQLServerAdminLogin administratorLoginPassword: azureSQLAdminPassword tags: tags virtualNetworkRules: [ { name: ‘vnet-rule-${azureSQLServerName}’ serverName: azureSQLServerName ignoreMissingVnetServiceEndpoint: false virtualNetworkSubnetId: ‘/subscriptions/${subscriptionID}/resourceGroups/${appTierRg}/providers/Microsoft.Network/virtualNetworks/${appVNetName}/subnets/dataSubNet’ } ] } dependsOn: [ newRG createAppVNet ] }
To get this to work you should also add a service endpoint into your subnet like the following:-
@description(‘An array of the subnets for the Application VNet.’) var appSubnets = { shared: [
{
name: 'appSubnet'
addressPrefix: '172.16.0.0/24'
delegations: [
{
name: 'delegation'
properties: {
serviceName: 'Microsoft.Web/serverfarms'
}
}
]
}
{
name: 'dataSubNet'
addressPrefix: '172.16.1.0/24'
serviceEndpoints: [
{
service: 'Microsoft.Sql'
}
]
}
] }
Let me know if you found this example useful.



