Skip to main content

Azure Resource Manager (ARM) template

An example of deploying an Azure Resource Manager (ARM) template using Pulumi.

This example lives in the pulumi/examples repository. Check out just this directory to use it:

Get started with this example
git clone --filter=blob:none --sparse https://github.com/pulumi/examples pulumi-examples
git -C pulumi-examples sparse-checkout set classic-azure-py-arm-template
cd pulumi-examples/classic-azure-py-arm-template

This example simply deploys an existing Azure Resource Manager (ARM) template using Pulumi. This accepts any existing valid ARM template, enabling easy migration from existing JSON templates and towards infrastructure as code using Pulumi. Once deployed, it is easy to incrementally refactor resources at a time out of the template and into code.

Read more about ARM templates here.

Prerequisites#

  1. Install Pulumi
  2. Configure Azure credentials
  3. Install Python

Deploying the example#

  1. Create a new stack:

    Terminal window
    pulumi stack init
  2. Set the required configuration variables for this program, and log into Azure:

    Terminal window
    pulumi config set azure:environment public
    pulumi config set azure:location westus2
    pulumi config set azure:subscriptionId <YOUR_SUBSCRIPTION_ID>
    az login
  3. Install dependencies:

    Terminal window
    python3 -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
  4. Perform the deployment:

    Terminal window
    pulumi up
    Updating stack 'azure-arm-dev'
    Performing changes:
    Type Name Status
    + pulumi:pulumi:Stack azure-arm--azure-arm-dev created
    + ├─ azure:core:ResourceGroup rg created
    + └─ azure:core:ResourceGroupTemplateDeployment arm-dep created
    Outputs:
    storageAccountName: "abevrwebgje2wstorage"
    Resources:
    + 3 created
    Duration: 1m8s

    Notice here that the storageAccountName allocated by the ARM template deployment is exported.

Cleaning up#

Once you are done, destroy all of the resources and the stack:

Terminal window
pulumi destroy
pulumi stack rm

Next steps#

For more Azure examples, please check out the Azure Getting Started Guide.

Related

The infrastructure as code platform for any cloud.