Main Template:
It has the usual template structure with the following tabs.
- schema
- contentVersion
- parameters
- resources
- outputs
You can find the description of these in my previous blog about ARM templates.
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { //main template parameters "StorageContainerSASToken": { "type": "string", "metadata": { "description": "SASToken here Dynamically generated by AzureFileCopyTask" } }, "StorageContainerURI": { "type": "string", "metadata": { "description": "Retrieve Azure Storage Container URI" } }, "applicationinsight-template-file": { "type": "string", "metadata": { "description": "Specifies Application Insight ARM template file name" } }, //Application Insight tempalte parameters "AppInsights_name": { "type": "string", "metadata": { "description": "Name of Application Insight" } }, "type": { "type": "string", "metadata": { "description": "Type of Application Insight" } }, "location": { "type": "string", "metadata": { "description": "location of Application Insight" } } }, "variables": { }, "resources": [ { "apiVersion": "2015-05-01", "name": "linkedTemplate_ApplicationInsight", "dependsOn": [ ], "properties": { "templateLink": { "contentVersion": "1.0.0.0", "uri": "[concat(parameters('StorageContainerURI'), parameters('applicationinsight-template-file'), parameters('StorageContainerSASToken'))]" }, "parameters": { "type": { "value": "[parameters('type')]" }, "AppInsights_name": { "value": "[parameters('AppInsights_name')]" }, "location": { "value": "[parameters('location')]" } }, "mode": "Incremental" }, "type": "Microsoft.Resources/deployments" } ], "outputs": { "APPINSIGHTS_INSTRUMENTATIONKEY": { "value": "[reference('linkedTemplate_ApplicationInsight').outputs.APPINSIGHTS_INSTRUMENTATIONKEY.value]", "type": "string" }, "App_Id": { "type": "string", "value": "[reference('linkedTemplate_ApplicationInsight').outputs.App_Id.value]" } } }
Note: i will update about the storage container SAS token, Storage container uri parameters soon in my next blog.
Main Parameter:
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { //common paramters "StorageContainerURI": { "value": "" }, "applicationinsight-template-file": { "value": "NameOfApplicationInsightTemplateFile" }, "location": { "value": "West Europe" }, //application insight parameters "AppInsights_name": { "value": "ExampleOfLinkedTemplate" }, "type": { "value": "other" } } }
Linked Template:
Below is the template for creating application insight.
{ "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "AppInsights_name": { "type": "string", "defaultValue": "YourApplicationInsightName" }, "location": { "type": "string" }, "type": { "type": "string" } }, "variables": { }, "resources": [ { "name": "[parameters('AppInsights_name')]", "type": "microsoft.insights/components", "location": "[parameters('location')]", "apiVersion": "2015-05-01", "properties": { "ApplicationId": "[parameters('AppInsights_name')]", "Application_Type": "[parameters('type')]", "Flow_Type": "Redfield", } } ], "outputs": { "APPINSIGHTS_INSTRUMENTATIONKEY": { "value": "[reference(resourceId('microsoft.insights/components/', parameters('AppInsights_name')), '2015-05-01').InstrumentationKey]", "type": "string" }, "App_Id": { "type": "string", "value": "[reference(resourceId('Microsoft.Insights/components/', parameters('AppInsights_name')), '2015-05-01').AppId]" } } }
1 thought on “Example of Linked ARM template”