Forum Discussion

Vignesh_Azure's avatar
Vignesh_Azure
Copper Contributor
Nov 29, 2021

ARM Template to Create Function APP with Vnet Integration

Hi All,

 

We are using the below ARM Template and Parameter file to create Function APP with Vnet Integration. The Template is creating Function app but vnet is not Integrating. We need to create Function app with Vnet Integration using the ARM template and Para file as given below.

 

Template:

 

{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"subscriptionId": {
"type": "String"
},
"appName": {
"type": "string"
},
"hostingPlanName": {
"type": "string"
},
"appinsightname": {
"type": "string"
},
"subnetid": {
"type": "string"
},
"sku": {
"type": "string"
},
"skuCode": {
"type": "string"
},
"workerSize": {
"type": "string"
},
"workerSizeId": {
"type": "string"
},
"numberOfWorkers": {
"type": "string"
},
"storageAccountName": {
"type": "string"
},
"storageRgName": {
"type": "string"
},
"use32BitWorkerProcess": {
"type": "string"
},
"serverFarmResourceGroup": {
"type": "string"
}
},
"resources": [
{
"type": "Microsoft.Web/sites",
"apiVersion": "2018-11-01",
"name": "[parameters('appName')]",
"location": "East US",
"dependsOn": [
"[resourceId('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
"[resourceId('microsoft.insights/components/', parameters('appinsightname'))]",
"[resourceId('Microsoft.Storage/storageAccounts/', parameters('storageAccountName'))]"
],
"kind": "functionapp",
"properties": {
"name": "[parameters('appName')]",
"siteConfig": {
"appSettings": [
{
"name": "FUNCTIONS_EXTENSION_VERSION",
"value": "~3"
},
{
"name": "FUNCTIONS_WORKER_RUNTIME",
"value": "dotnet"
},
{
"name": "AzureWebJobsStorage",
"value": "[concat('DefaultEndpointsProtocol=https;AccountName=',parameters('storageAccountName'),';AccountKey=',listKeys(resourceId(parameters('subscriptionId'),parameters('storageRgName'),'Microsoft.Storage/storageAccounts', parameters('storageAccountName')), '2019-06-01').keys[0].value,';EndpointSuffix=','core.windows.net')]"
},
{
"name": "WEBSITE_CONTENTAZUREFILECONNECTIONSTRING",
"value": "[concat('DefaultEndpointsProtocol=https;AccountName=',parameters('storageAccountName'),';AccountKey=',listKeys(resourceId(parameters('subscriptionId'),parameters('storageRgName'),'Microsoft.Storage/storageAccounts', parameters('storageAccountName')), '2019-06-01').keys[0].value,';EndpointSuffix=','core.windows.net')]"
},
{
"name": "WEBSITE_CONTENTSHARE",
"value": "[concat(toLower(parameters('appName')), '978c')]"
},
{
"name": "APPINSIGHTS_INSTRUMENTATIONKEY",
"value": "[reference(concat('microsoft.insights/components/', parameters('appinsightname'))).InstrumentationKey]"
}
],
"use32BitWorkerProcess": "[parameters('use32BitWorkerProcess')]"
},
"serverFarmId": "[concat('/subscriptions/', parameters('subscriptionId'),'/resourcegroups/', parameters('serverFarmResourceGroup'), '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
"clientAffinityEnabled": true
}
},
{
"type": "microsoft.insights/components",
"apiVersion": "2014-04-01",
"name": "[parameters('appinsightname')]",
"location": "eastus",
"kind": "other",
"properties": {
"ApplicationId": "[parameters('appinsightname')]"
}
},
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-06-01",
"name": "[parameters('storageAccountName')]",
"location": "eastus",
"sku": {
"name": "Standard_LRS",
"tier": "Standard"
},
"kind": "StorageV2",
"properties": {
"minimumTlsVersion": "TLS1_2",
"allowBlobPublicAccess": false,
"networkAcls": {
"resourceAccessRules": [],
"bypass": "AzureServices",
"ipRules": [],
"defaultAction": "Allow"
},
"supportsHttpsTrafficOnly": true,
"encryption": {
"services": {
"file": {
"keyType": "Account",
"enabled": true
},
"blob": {
"keyType": "Account",
"enabled": true
}
},
"keySource": "Microsoft.Storage"
},
"accessTier": "Hot"
}
},
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2018-02-01",
"name": "[parameters('hostingPlanName')]",
"location": "eastus",
"sku": {
"Tier": "[parameters('sku')]",
"Name": "[parameters('skuCode')]"
},
"kind": "",
"properties": {
"name": "[parameters('hostingPlanName')]",
"workerSize": "[parameters('workerSize')]",
"workerSizeId": "[parameters('workerSizeId')]",
"numberOfWorkers": "[parameters('numberOfWorkers')]"
}
},
{
"type": "Microsoft.Web/sites/virtualNetworkConnections",
"apiVersion": "2021-02-01",
"name": "[format('{0}/{1}', parameters('appName'), 'functionapp-snet')]",
"location": "eastus",
"properties": {
"vnetResourceId": "[parameters('subnetid')]",
"isSwift": true
},
"dependsOn": [
"[resourceId('Microsoft.Web/sites', parameters('appName'))]"
]
}
]
}

 

Para file:

{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"subscriptionId": {
"value": ""
},
"appName": {
"value": ""
},
"hostingPlanName": {
"value": ""
},
"appinsightname": {
"value": ""
},
"sku": {
"value": ""
},
"skuCode": {
"value": ""
},
"workerSize": {
"value": ""
},
"workerSizeId": {
"value": ""
},
"numberOfWorkers": {
"value": ""
},
"storageAccountName": {
"value": ""
},
"storageRgName": {
"value": ""
},
"use32BitWorkerProcess": {
"value": ""
},
"serverFarmResourceGroup": {
"value": ""
},
"subnetid" :{
""
}
}

1 Reply

  • Please follow this:

     

    {

    "type": "Microsoft.Web/sites/virtualNetworkConnections",

    "apiVersion": "2021-02-01",

    "name": "[concat(parameters('appName'), '/', parameters('subnetName'))]",

    "location": "[resourceGroup().location]",

    "properties": {

    "vnetResourceId": "[parameters('subnetid')]",

    "isSwift": true

    },

    "dependsOn": [

    "[resourceId('Microsoft.Web/sites', parameters('appName'))]"

    ]

    }