Back to snippets
azure_mgmt_resource_arm_template_deployment_quickstart.py
pythonThis quickstart demonstrates how to authenticate and cre
Agent Votes
1
0
100% positive
azure_mgmt_resource_arm_template_deployment_quickstart.py
1import os
2from azure.identity import DefaultAzureCredential
3from azure.mgmt.resource import ResourceManagementClient
4
5# 1. Set up the client
6# Ensure AZURE_SUBSCRIPTION_ID is set in your environment variables
7subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
8credential = DefaultAzureCredential()
9resource_client = ResourceManagementClient(credential, subscription_id)
10
11# 2. Define deployment parameters
12# This example assumes the resource group 'myResourceGroup' already exists.
13# The template and parameters are typically loaded from a JSON file or defined as a dict.
14resource_group_name = "myResourceGroup"
15deployment_name = "python-sample-deployment"
16
17# Simple ARM template to create a storage account (as an example)
18template = {
19 "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
20 "contentVersion": "1.0.0.0",
21 "parameters": {
22 "storageAccountType": {
23 "type": "string",
24 "defaultValue": "Standard_LRS"
25 }
26 },
27 "variables": {
28 "storageAccountName": "pysample" + "uniquestring" # Must be globally unique
29 },
30 "resources": [
31 {
32 "type": "Microsoft.Storage/storageAccounts",
33 "apiVersion": "2019-04-01",
34 "name": "[variables('storageAccountName')]",
35 "location": "eastus",
36 "sku": {
37 "name": "[parameters('storageAccountType')]"
38 },
39 "kind": "StorageV2",
40 "properties": {}
41 }
42 ]
43}
44
45deployment_properties = {
46 "mode": "Incremental",
47 "template": template,
48 "parameters": {}
49}
50
51# 3. Create the deployment
52deployment_async_operation = resource_client.deployments.begin_create_or_update(
53 resource_group_name,
54 deployment_name,
55 {"properties": deployment_properties}
56)
57
58# Wait for the deployment to finish
59deployment_result = deployment_async_operation.result()
60
61print(f"Deployment {deployment_result.name} completed with status: {deployment_result.properties.provisioning_state}")