Create ARM Template
Create an ARM template for publishing to the commercial marketplace.
Introduction
We will use a simple ARM template to demonstrate the principles. As described in Azure Apps Offer a solution template offer is not directly transactable in the commercial marketplace. It can however deploy transactable VM Offer(s). These offers can be hidden such that they can only be deployed by other offers (such as a solution template or managed application).
We will not follow this approach here but the principles are the same. Instead we will deploy a simple Azure function app.
Review the ARM Template
The template we will deploy can be found here. Take some time to familiarise yourself with the template. It will deploy a Linux Azure Function App on the serverless / consumption plan. This requires three services to be deployed:
- a Storage account
- an App Service Plan
- the Function App itself.
Test the ARM Template
The first thing we will do is test that the ARM template works and deploys the services we expect. We can do this using the Azure portal or the CLI.
Test using the Azure portal (Option 1)
-
Sign in to the Azure portal.
-
On the home page, select Create a resource, search for “Template Deployment”, and select Create.
-
Choose “Build your own template in the editor”.
-
Replace the contents of the editor with the JSON from the ARM template file and hit Save
-
Select the Subcription and Resource Group as required.
-
All the parameters in the template have default values - we can leave them as is.
-
Agree to the terms and conditions and hit “Purchase”.
-
Navigate to the resource group and confirm the services deploy as expected.
Test using the CLI (Option 2)
-
If you have cloned this repo, navigate to the folder containing the
mainTemplate.json
file. Something like/azurecitadel/content/marketplace/_scripts
. -
Otherwise, create a file called mainTemplate.json and paste the contents of the mainTemplate.json file. Save the file.
-
Create a new resource group using the Azure CLI:
RG='arm-template-test' LOC='westeurope' az group create --name "$RG"--location "$LOC"
Example output
{ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/arm-template-test", "location": "westeurope", "managedBy": null, "name": "arm-template-test", "properties": { "provisioningState": "Succeeded" }, "tags": null, "type": "Microsoft.Resources/resourceGroups" }
-
Deploy the ARM template
az deployment group create \ --name "test-deployment" \ --resource-group "$RG" \ --template-file "./mainTemplate.json"
Example output
{ "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/arm-template-test/providers/Microsoft.Resources/deployments/test-deployment", "location": null, "name": "test-deployment", "properties": { "correlationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "debugSetting": null, "dependencies": [ { "dependsOn": [ { "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/arm-template-test/providers/Microsoft.Web/serverfarms/hpn-arm-template-test", "resourceGroup": "arm-template-test", "resourceName": "hpn-arm-template-test", "resourceType": "Microsoft.Web/serverfarms" }, { ... ... ... }
-
Navigate to the resource group in the Azure portal and confirm the services deploy as expected.
Resources
Help us improve
Azure Citadel is a community site built on GitHub, please contribute and send a pull request
Make a change