%3CLINGO-SUB%20id%3D%22lingo-sub-336481%22%20slang%3D%22en-US%22%3EIaC%20on%20Azure%20-%20How%20to%20get%20started%20with%20ARM%20Template%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-336481%22%20slang%3D%22en-US%22%3E%0A%20%26lt%3Bmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text%2Fhtml%3B%20charset%3DUTF-8%22%20%2F%26gt%3B%3CSTRONG%3E%20First%20published%20on%20MSDN%20on%20May%2006%2C%202017%20%3C%2FSTRONG%3E%20%3CBR%20%2F%3E%3CP%3E%3CI%3E%20Authored%20by%20Ryen%20Tang%20%3C%2FI%3E%3C%2FP%3E%3CBR%20%2F%3E%20%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F73633iB23A4BF14482F87E%22%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20In%20today%E2%80%99s%20topic%2C%20I%E2%80%99m%20not%20going%20to%20reinvent%20the%20wheel%20by%20documenting%20on%20how%20to%20develop%20an%20ARM%20Template%2C%20but%20provides%20all%20the%20resources%20to%20get%20you%20started%20instead.%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20Since%20ARM%20Template%20has%20been%20around%20for%20quite%20some%20time%2C%20there%20are%20tons%20of%20resources%20available%20online%20about%20developing%20Azure%20Resource%20Manager%20(ARM)%20Template%20in%20JSON%20by%20multiple%20contributors.%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20Therefore%2C%20I%E2%80%99m%20sharing%20everything%20you%20need%20to%20know%20for%20getting%20started%20with%20ARM%20Template%20written%20by%20the%20community%20for%20the%20community%20below%3A%20%3CBR%20%2F%3E%3CUL%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-resource-manager%2Fresource-manager-template-best-practices%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Best%20practices%20for%20creating%20Azure%20Resource%20Manager%20templates%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-resource-manager%2Fresource-group-authoring-templates%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Understand%20the%20structure%20and%20syntax%20of%20Azure%20Resource%20Manager%20templates%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-resource-manager%2Fresource-manager-create-first-template%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Create%20your%20first%20Azure%20Resource%20Manager%20template%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-resource-manager%2Fresource-group-linked-templates%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Using%20linked%20templates%20when%20deploying%20Azure%20resources%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-resource-manager%2Fresource-group-define-dependencies%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Define%20the%20order%20for%20deploying%20resources%20in%20Azure%20Resource%20Manager%20templates%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-resource-manager%2Fresource-group-create-multiple%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Deploy%20multiple%20instances%20of%20resources%20in%20Azure%20Resource%20Manager%20templates%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-resource-manager%2Fresource-manager-sequential-loop%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Patterns%20for%20extending%20the%20functionality%20of%20Azure%20Resource%20Manager%20templates%20-%20Sequential%20Looping%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-resource-manager%2Fresource-manager-property-copy%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Create%20multiple%20instances%20of%20property%20on%20resource%20type%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-resource-manager%2Fresource-manager-template-location%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Set%20resource%20location%20in%20Azure%20Resource%20Manager%20templates%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-resource-manager%2Fresource-manager-template-tags%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Tag%20resources%20in%20Azure%20Resource%20Manager%20templates%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-resource-manager%2Fresource-manager-template-child-resource%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Set%20name%20and%20type%20for%20child%20resource%20in%20Resource%20Manager%20template%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-resource-manager%2Fresource-manager-update%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Patterns%20for%20extending%20the%20functionality%20of%20Azure%20Resource%20Manager%20templates%20-%20updating%20a%20resource%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-resource-manager%2Fresource-manager-objects-as-parameters%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Patterns%20for%20extending%20the%20functionality%20of%20Azure%20Resource%20Manager%20templates%20-%20objects%20as%20parameters%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-resource-manager%2Fbest-practices-resource-manager-state%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Share%20state%20to%20and%20from%20Azure%20Resource%20Manager%20templates%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-resource-manager%2Fbest-practices-resource-manager-design-templates%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Design%20patterns%20for%20Azure%20Resource%20Manager%20templates%20when%20deploying%20complex%20solutions%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3C%2FUL%3E%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20If%20you%20ever%20have%20doubt%20on%20how%20to%20use%20some%20of%20the%20Template%20functions%20like%20the%20examples%20below%3A%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%5Bcode%20language%3D%22js%22%20collapse%3D%22true%22%20title%3D%22How%20to%20use%20Concat%20function%3F%20(Click%20to%20Expand)%22%5D%20%3CBR%20%2F%3E%20%5Bconcat(parameters('FirstName')%2C%20parameters('LastName')%5D%20%3CBR%20%2F%3E%20%5B%2Fcode%5D%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20Or%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%5Bcode%20language%3D%22js%22%20collapse%3D%22true%22%20title%3D%22How%20to%20use%20Reference%20function%3F%20(Click%20to%20Expand)%22%5D%20%3CBR%20%2F%3E%20%5Breference(parameters('storageAccountName'))%5D%20%3CBR%20%2F%3E%20%5B%2Fcode%5D%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20You%20can%20always%20feel%20free%20to%20check%20the%20Template%20functions%20documentation%20below%3A%20%3CBR%20%2F%3E%3CUL%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-resource-manager%2Fresource-group-template-functions%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Azure%20Resource%20Manager%20template%20functions%20%3C%2FA%3E%20%3CBR%20%2F%3E%3CUL%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-resource-manager%2Fresource-group-template-functions-array%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Array%20and%20object%20functions%20for%20Azure%20Resource%20Manager%20templates%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-resource-manager%2Fresource-group-template-functions-comparison%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Comparison%20functions%20for%20Azure%20Resource%20Manager%20templates%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-resource-manager%2Fresource-group-template-functions-deployment%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Deployment%20functions%20for%20Azure%20Resource%20Manager%20templates%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-resource-manager%2Fresource-group-template-functions-numeric%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Numeric%20functions%20for%20Azure%20Resource%20Manager%20templates%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-resource-manager%2Fresource-group-template-functions-resource%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Resource%20functions%20for%20Azure%20Resource%20Manager%20templates%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-resource-manager%2Fresource-group-template-functions-string%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20String%20functions%20for%20Azure%20Resource%20Manager%20templates%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3C%2FUL%3E%3CBR%20%2F%3E%3C%2FLI%3E%3CBR%20%2F%3E%3C%2FUL%3E%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20Beside%20referring%20to%20those%20documentation%2C%20you%20can%20also%20use%20this%20Azure%20Resource%20Explorer%20(Preview)%20to%20better%20understand%20your%20existing%20resources%20in%20your%20Azure%20Subscription%20and%20learn%20some%20of%20the%20available%20property%20documentation%20in%20the%20data.%20%3CBR%20%2F%3E%3CUL%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fresources.azure.com%2F%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Azure%20Resource%20Explorer%20(Preview)%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3C%2FUL%3E%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20If%20you%20think%20that%20developing%20your%20ARM%20Template%20is%20going%20to%20take%20a%20toll%20on%20you%2C%20have%20you%20try%20searching%20for%20an%20available%20template%20that%20may%20deliver%20your%20solution%20from%20Azure%20Quickstart%20Templates%3F%20%3CBR%20%2F%3E%3CUL%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fazure.microsoft.com%2Fen-us%2Fresources%2Ftemplates%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Azure%20Quickstart%20Templates%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3C%2FUL%3E%3CBR%20%2F%3E%20Some%20time%20it%20is%20easier%20that%20way%2C%20thanks%20to%20the%20community%20contributors.%20There%20is%20no%20need%20to%20reinvent%20the%20wheel%20unless%20you%20have%20a%20different%20type%20of%20vehicle%20that%20requires%20a%20custom%20wheel.%20%3A)%3C%2Fimg%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CSTRONG%3E%20Reference%3C%2FSTRONG%3E%20%3CBR%20%2F%3E%3CUL%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-resource-manager%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Azure%20Resource%20Manager%20Documentation%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fprojectkudu%2FARMExplorer%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20GitHub%20-%20Azure%20Resource%20Explorer%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FAzure%2Fazure-quickstart-templates%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20GitHub%20-%20Azure%20Quickstart%20Templates%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3C%2FUL%3E%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CSTRONG%3E%20See%20Also%20%3C%2FSTRONG%3E%20%3CBR%20%2F%3E%3CUL%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fblogs.msdn.microsoft.com%2Fazuredev%2F2017%2F02%2F11%2Fiac-on-azure-an-introduction-of-infrastructure-as-code-iac-with-azure-resource-manager-arm-template%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20An%20introduction%20of%20Infrastructure%20as%20Code%20(IaC)%20with%20Azure%20Resource%20Manager%20(ARM)%20Template%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fblogs.msdn.microsoft.com%2Fazuredev%2F2017%2F02%2F25%2Fiac-on-azure-windows-server-virtual-machine-deployment-made-easy-with-arm-template%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Windows%20Server%20Virtual%20Machine%20Deployment%20made%20easy%20with%20ARM%20Template%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fblogs.msdn.microsoft.com%2Fazuredev%2F2017%2F03%2F11%2Fiac-on-azure-linux-virtual-machine-deployment-in-a-breeze-with-arm-template%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Linux%20Virtual%20Machine%20Deployment%20in%20a%20breeze%20with%20ARM%20Template%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fblogs.msdn.microsoft.com%2Fazuredev%2F2017%2F04%2F08%2Fiac-on-azure-developing-arm-template-using-vscode-efficiently%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3E%20Developing%20ARM%20Template%20using%20VSCode%20efficiently%20%3C%2FA%3E%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EHow%20to%20get%20started%20with%20ARM%20Template%3C%2FLI%3E%3CBR%20%2F%3E%3C%2FUL%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-TEASER%20id%3D%22lingo-teaser-336481%22%20slang%3D%22en-US%22%3EFirst%20published%20on%20MSDN%20on%20May%2006%2C%202017%20Authored%20by%20Ryen%20TangIn%20today%E2%80%99s%20topic%2C%20I%E2%80%99m%20not%20going%20to%20reinvent%20the%20wheel%20by%20documenting%20on%20how%20to%20develop%20an%20ARM%20Template%2C%20but%20provides%20all%20the%20resources%20to%20get%20you%20started%20instead.%3C%2FLINGO-TEASER%3E
First published on MSDN on May 06, 2017

Authored by Ryen Tang




In today’s topic, I’m not going to reinvent the wheel by documenting on how to develop an ARM Template, but provides all the resources to get you started instead.



Since ARM Template has been around for quite some time, there are tons of resources available online about developing Azure Resource Manager (ARM) Template in JSON by multiple contributors.



Therefore, I’m sharing everything you need to know for getting started with ARM Template written by the community for the community below:



If you ever have doubt on how to use some of the Template functions like the examples below:

[code language="js" collapse="true" title="How to use Concat function? (Click to Expand)"]
[concat(parameters('FirstName'), parameters('LastName')]
[/code]

Or

[code language="js" collapse="true" title="How to use Reference function? (Click to Expand)"]
[reference(parameters('storageAccountName'))]
[/code]



You can always feel free to check the Template functions documentation below:



Beside referring to those documentation, you can also use this Azure Resource Explorer (Preview) to better understand your existing resources in your Azure Subscription and learn some of the available property documentation in the data.



If you think that developing your ARM Template is going to take a toll on you, have you try searching for an available template that may deliver your solution from Azure Quickstart Templates?

Some time it is easier that way, thanks to the community contributors. There is no need to reinvent the wheel unless you have a different type of vehicle that requires a custom wheel. :)


Reference



See Also