{ "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json", "contentVersion": "1.0.0.0", "parameters": { "databricksWorkspaceUrl": { "type": "string", "metadata": { "description": "Please create a new Databricks workspace if you don't have one and the workspcae url should be of the format https://{DatabricksLocation}.azuredatabricks.net" } }, "databricksToken": { "type": "string", "metadata": { "description": "To generate the Databricks access token requested , please follow the instructions at https://docs.databricks.com/api/latest/authentication.html#id3." } }, "dsvmUsername": { "type": "string" }, "dsvmPassword": { "type": "securestring" }, "dsvmSize": { "type": "string", "defaultValue": "Standard_DS3_v2", "allowedValues": [ "Basic_A0", "Basic_A1", "Basic_A2", "Basic_A3", "Basic_A4", "Standard_A0", "Standard_A1", "Standard_A2", "Standard_A3", "Standard_A4", "Standard_A5", "Standard_A6", "Standard_A7", "Standard_A8", "Standard_A9", "Standard_A10", "Standard_A11", "Standard_A1_v2", "Standard_A2_v2", "Standard_A4_v2", "Standard_A8_v2", "Standard_A2m_v2", "Standard_A4m_v2", "Standard_A8m_v2", "Standard_B1s", "Standard_B1ms", "Standard_B2s", "Standard_B2ms", "Standard_B4ms", "Standard_B8ms", "Standard_D1", "Standard_D2", "Standard_D3", "Standard_D4", "Standard_D11", "Standard_D12", "Standard_D13", "Standard_D14", "Standard_D1_v2", "Standard_D2_v2", "Standard_D3_v2", "Standard_D4_v2", "Standard_D5_v2", "Standard_D2_v3", "Standard_D4_v3", "Standard_D8_v3", "Standard_D16_v3", "Standard_D32_v3", "Standard_D64_v3", "Standard_D2s_v3", "Standard_D4s_v3", "Standard_D8s_v3", "Standard_D16s_v3", "Standard_D32s_v3", "Standard_D64s_v3", "Standard_D11_v2", "Standard_D12_v2", "Standard_D13_v2", "Standard_D14_v2", "Standard_D15_v2", "Standard_DS1", "Standard_DS2", "Standard_DS3", "Standard_DS4", "Standard_DS11", "Standard_DS12", "Standard_DS13", "Standard_DS14", "Standard_DS1_v2", "Standard_DS2_v2", "Standard_DS3_v2", "Standard_DS4_v2", "Standard_DS5_v2", "Standard_DS11_v2", "Standard_DS12_v2", "Standard_DS13_v2", "Standard_DS14_v2", "Standard_DS15_v2", "Standard_DS13-4_v2", "Standard_DS13-2_v2", "Standard_DS14-8_v2", "Standard_DS14-4_v2", "Standard_E2_v3", "Standard_E4_v3", "Standard_E8_v3", "Standard_E16_v3", "Standard_E32_v3", "Standard_E64_v3", "Standard_E2s_v3", "Standard_E4s_v3", "Standard_E8s_v3", "Standard_E16s_v3", "Standard_E32s_v3", "Standard_E64s_v3", "Standard_E32-16_v3", "Standard_E32-8s_v3", "Standard_E64-32s_v3", "Standard_E64-16s_v3", "Standard_F1", "Standard_F2", "Standard_F4", "Standard_F8", "Standard_F16", "Standard_F1s", "Standard_F2s", "Standard_F4s", "Standard_F8s", "Standard_F16s", "Standard_F2s_v2", "Standard_F4s_v2", "Standard_F8s_v2", "Standard_F16s_v2", "Standard_F32s_v2", "Standard_F64s_v2", "Standard_F72s_v2", "Standard_G1", "Standard_G2", "Standard_G3", "Standard_G4", "Standard_G5", "Standard_GS1", "Standard_GS2", "Standard_GS3", "Standard_GS4", "Standard_GS5", "Standard_GS4-8", "Standard_GS4-4", "Standard_GS5-16", "Standard_GS5-8", "Standard_H8", "Standard_H16", "Standard_H8m", "Standard_H16m", "Standard_H16r", "Standard_H16mr", "Standard_L4s", "Standard_L8s", "Standard_L16s", "Standard_L32s", "Standard_M64s", "Standard_M64ms", "Standard_M128s", "Standard_M128ms", "Standard_M64-32ms", "Standard_M64-16ms", "Standard_M128-64ms", "Standard_M128-32ms", "Standard_NC6", "Standard_NC12", "Standard_NC24", "Standard_NC24r", "Standard_NC6s_v2", "Standard_NC12s_v2", "Standard_NC24s_v2", "Standard_NC24rs_v2", "Standard_NC6s_v3", "Standard_NC12s_v3", "Standard_NC24s_v3", "Standard_NC24rs_v3", "Standard_ND6s", "Standard_ND12s", "Standard_ND24s", "Standard_ND24rs", "Standard_NV6", "Standard_NV12", "Standard_NV24" ] } }, "variables": { "gitHubBaseUrl": "https://raw.githubusercontent.com/Azure/AI-PredictiveMaintenance/master/" }, "resources": [ { "apiVersion": "2017-05-10", "name": "generateResourceNamesTemplate", "type": "Microsoft.Resources/deployments", "properties": { "mode": "incremental", "templateLink": { "uri":"[concat(variables('gitHubBaseUrl'),'src/ARMTemplates/resourceNames.json')]", "contentVersion":"1.0.0.0" } } }, { "apiVersion": "2017-05-10", "name": "iotHubTemplate", "type": "Microsoft.Resources/deployments", "properties": { "mode": "incremental", "templateLink": { "uri":"[concat(variables('gitHubBaseUrl'),'src/ARMTemplates/iotHub.json')]", "contentVersion":"1.0.0.0" } } }, { "apiVersion": "2017-05-10", "name": "storageAccountTemplate", "type": "Microsoft.Resources/deployments", "properties": { "mode": "incremental", "templateLink": { "uri":"[concat(variables('gitHubBaseUrl'),'src/ARMTemplates/storageAccount.json')]", "contentVersion":"1.0.0.0" } } }, { "apiVersion": "2017-05-10", "name": "deployMLWebServiceTemplate", "type": "Microsoft.Resources/deployments", "properties": { "mode": "incremental", "templateLink": { "uri":"[concat(variables('gitHubBaseUrl'),'src/ARMTemplates/deployMLWebService.json')]", "contentVersion":"1.0.0.0" } } }, { "apiVersion": "2017-05-10", "name": "demoDashboardTemplate", "type": "Microsoft.Resources/deployments", "dependsOn": [ "deployMLWebServiceTemplate", "storageAccountTemplate", "iotHubTemplate", "generateResourceNamesTemplate" ], "properties": { "mode": "incremental", "templateLink": { "uri":"[concat(variables('gitHubBaseUrl'),'src/ARMTemplates/demoDashboard.json')]", "contentVersion":"1.0.0.0" }, "parameters": { "webSiteName": {"value": "[reference('generateResourceNamesTemplate').outputs.webSiteName.value]"}, "webAppUrl": {"value": "[concat(variables('gitHubBaseUrl'),'binaries//WebApp.zip')]"}, "amlAssetsUrl": {"value": "[concat(variables('gitHubBaseUrl'),'binaries//AML.zip')]"}, "iotHubName": {"value": "[reference('iotHubTemplate').outputs.iotHubName.value]"}, "iotHubOwnerKey": {"value": "[reference('iotHubTemplate').outputs.iotHubOwnerKey.value]"}, "iotHubDeviceKey": {"value": "[reference('iotHubTemplate').outputs.iotHubDeviceKey.value]"}, "storageAccountName": {"value": "[reference('storageAccountTemplate').outputs.storageAccountName.value]"}, "storageAccountKey": {"value": "[reference('storageAccountTemplate').outputs.storageAccountKey.value]"}, "dsvmName": {"value": "[reference('generateResourceNamesTemplate').outputs.vmName.value]"}, "databricksWorkspaceUrl": {"value": "[parameters('databricksWorkspaceUrl')]"}, "eventHubConnectionString": {"value": "[reference('iotHubTemplate').outputs.eventHubConnectionString.value]"}, "featurizerJarUrl": {"value": "[concat(variables('gitHubBaseUrl'),'binaries/featurizer_2.11-1.0.jar')]"}, "databricksToken": {"value": "[parameters('databricksToken')]"}, "scoreUrl": {"value": "[concat('http://', reference('deployMLWebServiceTemplate').outputs.azureContainerName.value, '.azurecontainer.io:5001/score')]"}, "databricksworkspaceLoginUrl": {"value": ""}, "notebooksUrl": {"value": "[concat(variables('gitHubBaseUrl'),'binaries/Notebooks.zip')]"} } } }, { "apiVersion": "2017-05-10", "name": "iotHubStorageRouteTemplate", "type": "Microsoft.Resources/deployments", "dependsOn": [ "storageAccountTemplate", "iotHubTemplate" ], "properties": { "mode": "incremental", "templateLink": { "uri":"[concat(variables('gitHubBaseUrl'),'src/ARMTemplates/iotHubStorageRoute.json')]", "contentVersion":"1.0.0.0" }, "parameters": { "storageContainerName": { "value": "telemetry" }, "storageAccountConnectionString": { "value": "[concat('DefaultEndpointsProtocol=https;AccountName=', reference('storageAccountTemplate').outputs.storageAccountName.value, ';AccountKey=', reference('storageAccountTemplate').outputs.storageAccountKey.value)]" } } } }, { "apiVersion": "2017-05-10", "name": "linuxDsvmTemplate", "type": "Microsoft.Resources/deployments", "dependsOn": [ "storageAccountTemplate" ], "properties": { "mode": "incremental", "templateLink": { "uri":"[concat(variables('gitHubBaseUrl'),'src/ARMTemplates/linuxDsvm.json')]", "contentVersion":"1.0.0.0" }, "parameters": { "adminUsername": { "value": "[parameters('dsvmUsername')]" }, "adminPassword": { "value": "[parameters('dsvmPassword')]" }, "storageAccountName": { "value": "[reference('storageAccountTemplate').outputs.storageAccountName.value]" }, "vmSize": { "value": "[parameters('dsvmSize')]" }, "fileUris": { "value": "[concat(variables('gitHubBaseUrl'),'src/CustomScripts/setup.sh ', variables('gitHubBaseUrl'), '/binaries/Notebooks.zip ', variables('gitHubBaseUrl'), '/binaries/spark-avro_2.11-4.0.0.jar')]" }, "commandToExecute": { "value": "[concat('bash setup.sh ',parameters('databricksWorkspaceUrl'),' ',parameters('databricksToken'),' ', reference('storageAccountTemplate').outputs.storageAccountName.value,' ', reference('storageAccountTemplate').outputs.storageAccountKey.value)]" } } } } ] }