Skip to main content
  1. Posts/

Azure SQL Server VNet Integrated using Bicep

·188 words·1 min
Author
Gregor Suttie
Passionate about all things Azure. Microsoft Azure MVP, blogger, speaker and community enthusiast based in Scotland.

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.

Share this:

Related