{ "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "FunctionName": { "defaultValue": "FuncTest", "minLength": 1, "maxLength": 10, "type": "string" } }, "variables": { "FunctionName1": "[concat(toLower(parameters('FunctionName')), uniqueString(resourceGroup().id),'1')]", "FunctionName2": "[concat(toLower(parameters('FunctionName')), uniqueString(resourceGroup().id),'2')]", "StorageSuffix": "[environment().suffixes.storage]" }, "resources": [ { "type": "Microsoft.Insights/components", "apiVersion": "2015-05-01", "name": "[variables('FunctionName1')]", "location": "[resourceGroup().location]", "kind": "web", "properties": { "Application_Type": "web", "ApplicationId": "[variables('FunctionName1')]" } }, { "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2019-06-01", "name": "[tolower(variables('FunctionName1'))]", "location": "[resourceGroup().location]", "sku": { "name": "Standard_LRS", "tier": "Standard" }, "kind": "StorageV2", "properties": { "networkAcls": { "bypass": "AzureServices", "virtualNetworkRules": [], "ipRules": [], "defaultAction": "Allow" }, "supportsHttpsTrafficOnly": true, "encryption": { "services": { "file": { "keyType": "Account", "enabled": true }, "blob": { "keyType": "Account", "enabled": true } }, "keySource": "Microsoft.Storage" } } }, { "type": "Microsoft.Storage/storageAccounts/blobServices", "apiVersion": "2019-06-01", "name": "[concat(variables('FunctionName1'), '/default')]", "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts', tolower(variables('FunctionName1')))]" ], "sku": { "name": "Standard_LRS", "tier": "Standard" }, "properties": { "cors": { "corsRules": [] }, "deleteRetentionPolicy": { "enabled": false } } }, { "type": "Microsoft.Storage/storageAccounts/fileServices", "apiVersion": "2019-06-01", "name": "[concat(variables('FunctionName1'), '/default')]", "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts', tolower(variables('FunctionName1')))]" ], "sku": { "name": "Standard_LRS", "tier": "Standard" }, "properties": { "cors": { "corsRules": [] } } }, { "type": "Microsoft.Web/sites", "apiVersion": "2018-11-01", "name": "[variables('FunctionName1')]", "location": "[resourceGroup().location]", "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts', tolower(variables('FunctionName1')))]", "[resourceId('Microsoft.Insights/components', variables('FunctionName1'))]" ], "kind": "functionapp,linux", "identity": { "type": "SystemAssigned" }, "properties": { "name": "[variables('FunctionName1')]", "httpsOnly": true, "clientAffinityEnabled": true, "alwaysOn": true, "reserved": true, "siteConfig": { "linuxFxVersion": "python|3.8" } }, "resources": [ { "apiVersion": "2018-11-01", "type": "config", "name": "appsettings", "dependsOn": [ "[concat('Microsoft.Web/sites/', variables('FunctionName1'))]" ], "properties": { "FUNCTIONS_EXTENSION_VERSION": "~4", "FUNCTIONS_WORKER_RUNTIME": "python", "APPINSIGHTS_INSTRUMENTATIONKEY": "[reference(resourceId('Microsoft.insights/components', variables('FunctionName1')), '2015-05-01').InstrumentationKey]", "APPLICATIONINSIGHTS_CONNECTION_STRING": "[reference(resourceId('microsoft.insights/components', variables('FunctionName1')), '2015-05-01').ConnectionString]", "AzureWebJobsStorage": "[concat('DefaultEndpointsProtocol=https;AccountName=', toLower(variables('FunctionName1')),';AccountKey=',listKeys(resourceId('Microsoft.Storage/storageAccounts', toLower(variables('FunctionName1'))), '2019-06-01').keys[0].value, ';EndpointSuffix=',toLower(variables('StorageSuffix')))]", "WEBSITE_RUN_FROM_PACKAGE": "https://github.com/deep-thakkar-1112002/arm-deployment/raw/main/TimerTest.zip" } } ] }, { "type": "Microsoft.Storage/storageAccounts/blobServices/containers", "apiVersion": "2019-06-01", "name": "[concat(variables('FunctionName1'), '/default/azure-webjobs-hosts')]", "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts/blobServices', variables('FunctionName1'), 'default')]", "[resourceId('Microsoft.Storage/storageAccounts', variables('FunctionName1'))]" ], "properties": { "publicAccess": "None" } }, { "type": "Microsoft.Storage/storageAccounts/blobServices/containers", "apiVersion": "2019-06-01", "name": "[concat(variables('FunctionName1'), '/default/azure-webjobs-secrets')]", "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts/blobServices', variables('FunctionName1'), 'default')]", "[resourceId('Microsoft.Storage/storageAccounts', variables('FunctionName1'))]" ], "properties": { "publicAccess": "None" } }, { "type": "Microsoft.Storage/storageAccounts/fileServices/shares", "apiVersion": "2019-06-01", "name": "[concat(variables('FunctionName1'), '/default/', tolower(variables('FunctionName1')))]", "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts/fileServices', variables('FunctionName1'), 'default')]", "[resourceId('Microsoft.Storage/storageAccounts', variables('FunctionName1'))]" ], "properties": { "shareQuota": 5120 } }, { "type": "Microsoft.Insights/components", "apiVersion": "2015-05-01", "name": "[variables('FunctionName2')]", "location": "[resourceGroup().location]", "kind": "web", "properties": { "Application_Type": "web", "ApplicationId": "[variables('FunctionName2')]" } }, { "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2019-06-01", "name": "[tolower(variables('FunctionName2'))]", "location": "[resourceGroup().location]", "sku": { "name": "Standard_LRS", "tier": "Standard" }, "kind": "StorageV2", "properties": { "networkAcls": { "bypass": "AzureServices", "virtualNetworkRules": [], "ipRules": [], "defaultAction": "Allow" }, "supportsHttpsTrafficOnly": true, "encryption": { "services": { "file": { "keyType": "Account", "enabled": true }, "blob": { "keyType": "Account", "enabled": true } }, "keySource": "Microsoft.Storage" } } }, { "type": "Microsoft.Storage/storageAccounts/blobServices", "apiVersion": "2019-06-01", "name": "[concat(variables('FunctionName2'), '/default')]", "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts', tolower(variables('FunctionName2')))]" ], "sku": { "name": "Standard_LRS", "tier": "Standard" }, "properties": { "cors": { "corsRules": [] }, "deleteRetentionPolicy": { "enabled": false } } }, { "type": "Microsoft.Storage/storageAccounts/fileServices", "apiVersion": "2019-06-01", "name": "[concat(variables('FunctionName2'), '/default')]", "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts', tolower(variables('FunctionName2')))]" ], "sku": { "name": "Standard_LRS", "tier": "Standard" }, "properties": { "cors": { "corsRules": [] } } }, { "type": "Microsoft.Web/sites", "apiVersion": "2018-11-01", "name": "[variables('FunctionName2')]", "location": "[resourceGroup().location]", "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts', tolower(variables('FunctionName2')))]", "[resourceId('Microsoft.Insights/components', variables('FunctionName2'))]" ], "kind": "functionapp,linux", "identity": { "type": "SystemAssigned" }, "properties": { "name": "[variables('FunctionName2')]", "httpsOnly": true, "clientAffinityEnabled": true, "alwaysOn": true, "reserved": true, "siteConfig": { "linuxFxVersion": "python|3.8" } }, "resources": [ { "apiVersion": "2018-11-01", "type": "config", "name": "appsettings", "dependsOn": [ "[concat('Microsoft.Web/sites/', variables('FunctionName2'))]" ], "properties": { "FUNCTIONS_EXTENSION_VERSION": "~4", "FUNCTIONS_WORKER_RUNTIME": "python", "APPINSIGHTS_INSTRUMENTATIONKEY": "[reference(resourceId('Microsoft.insights/components', variables('FunctionName2')), '2015-05-01').InstrumentationKey]", "APPLICATIONINSIGHTS_CONNECTION_STRING": "[reference(resourceId('microsoft.insights/components', variables('FunctionName2')), '2015-05-01').ConnectionString]", "AzureWebJobsStorage": "[concat('DefaultEndpointsProtocol=https;AccountName=', toLower(variables('FunctionName2')),';AccountKey=',listKeys(resourceId('Microsoft.Storage/storageAccounts', toLower(variables('FunctionName2'))), '2019-06-01').keys[0].value, ';EndpointSuffix=',toLower(variables('StorageSuffix')))]", "WEBSITE_RUN_FROM_PACKAGE": "https://github.com/deep-thakkar-1112002/arm-deployment/raw/main/TimerTest.zip" } } ] }, { "type": "Microsoft.Storage/storageAccounts/blobServices/containers", "apiVersion": "2019-06-01", "name": "[concat(variables('FunctionName2'), '/default/azure-webjobs-hosts')]", "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts/blobServices', variables('FunctionName2'), 'default')]", "[resourceId('Microsoft.Storage/storageAccounts', variables('FunctionName2'))]" ], "properties": { "publicAccess": "None" } }, { "type": "Microsoft.Storage/storageAccounts/blobServices/containers", "apiVersion": "2019-06-01", "name": "[concat(variables('FunctionName2'), '/default/azure-webjobs-secrets')]", "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts/blobServices', variables('FunctionName2'), 'default')]", "[resourceId('Microsoft.Storage/storageAccounts', variables('FunctionName2'))]" ], "properties": { "publicAccess": "None" } }, { "type": "Microsoft.Storage/storageAccounts/fileServices/shares", "apiVersion": "2019-06-01", "name": "[concat(variables('FunctionName2'), '/default/', tolower(variables('FunctionName2')))]", "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts/fileServices', variables('FunctionName2'), 'default')]", "[resourceId('Microsoft.Storage/storageAccounts', variables('FunctionName2'))]" ], "properties": { "shareQuota": 5120 } } ] }