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.

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.

    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.

    Select Bash or PowerShell

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

    Upload file

  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