Deploy ARM templates from Azure Cloud Shell

You can use Azure Cloud Shell to deploy an Azure Resource Manager template (ARM template). You can deploy either an ARM template that is stored remotely, or an ARM template that is stored on the local storage account for Cloud Shell.

You can deploy to any scope. This article shows deploying to a resource group.

Required permissions

To deploy a Bicep file or ARM template, you need write access on the resources you're deploying and access to all operations on the Microsoft.Resources/deployments resource type. For example, to deploy a virtual machine, you need Microsoft.Compute/virtualMachines/write and Microsoft.Resources/deployments/* permissions. The what-if operation has the same permission requirements.

For a list of roles and permissions, see Azure built-in roles.

Deploy remote template

To deploy an external template, provide the URI of the template exactly as you would for any external deployment. The external template could be in a GitHub repository or and an external storage account.

  1. Open the Cloud Shell prompt.

    Screenshot of the button to open Cloud Shell.

  2. To deploy the template, use the following commands:

    az group create --name ExampleGroup --location "Central US"
    az deployment group create \
      --name ExampleDeployment \
      --resource-group ExampleGroup \
      --template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json" \
      --parameters storageAccountType=Standard_GRS
    

Deploy local template

To deploy a local template, you must first upload your template to the storage account that is connected to your Cloud Shell session.

  1. Sign in to the Cloud Shell.

  2. Select either PowerShell or Bash.

    Screenshot of the option to select Bash or PowerShell in Cloud Shell.

  3. Select Upload/Download files, and then select Upload.

    Screenshot of the Cloud Shell interface with the Upload file option highlighted.

  4. Select the ARM template you want to upload, and then select Open.

  5. To deploy the template, use the following commands:

    az group create --name ExampleGroup --location "South Central US"
    az deployment group create \
      --resource-group ExampleGroup \
      --template-file azuredeploy.json \
      --parameters storageAccountType=Standard_GRS
    

Next steps