In our template, we can discover two needs:
- There is a convention that is required to be followed while naming. All the resources share a common naming pattern, typically the project name.
- For multitenant projects, or projects that share the same architecture, the template is useful for more than one project and one requirement can be rewriting the template in such a way that we can reuse it with the minimal changes.
To support these needs, ARM templates implement two features. The first one is the presence of two other objects on the JSON ARM template: variables and parameters. Variables are specific key/value pairs to be referenced in other parts of the template. Parameters are key/value pair containers, like variables, ...