Top Related Projects
Open source documentation of Microsoft Azure
Azure Command-Line Interface
This repository is for active development of the Azure SDK for Python. For consumers of the SDK we recommend visiting our public developer docs at https://learn.microsoft.com/python/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-python.
Microsoft Azure PowerShell
Terraform provider for Azure Resource Manager
Bicep is a declarative language for describing and deploying Azure resources
Quick Overview
Azure/azure-quickstart-templates is a GitHub repository maintained by Microsoft that contains a collection of Azure Resource Manager (ARM) templates for deploying various Azure resources and solutions. These templates serve as starting points for users to quickly set up complex Azure environments, ranging from simple virtual machines to comprehensive multi-tier applications.
Pros
- Extensive collection of pre-built, tested templates for various Azure services and scenarios
- Regularly updated to reflect the latest Azure features and best practices
- Community-driven with contributions from both Microsoft and external developers
- Includes detailed documentation and parameter files for easy customization
Cons
- Some templates may become outdated if not regularly maintained
- Complexity of certain templates might be overwhelming for beginners
- Not all Azure services or scenarios are covered
- Some templates may require additional configuration or tweaking for production use
Getting Started
To use a template from this repository:
- Browse the repository and select a template that fits your needs.
- Click on the "Deploy to Azure" button in the template's README file, or:
- Download the template and parameter files.
- Use Azure CLI, PowerShell, or Azure Portal to deploy the template:
az group create --name MyResourceGroup --location eastus
az deployment group create --resource-group MyResourceGroup --template-file template.json --parameters parameters.json
For more detailed instructions, refer to the README file in each template's directory.
Competitor Comparisons
Open source documentation of Microsoft Azure
Pros of azure-docs
- Comprehensive documentation covering all aspects of Azure services
- Regularly updated with the latest information and best practices
- Includes tutorials, conceptual articles, and reference materials
Cons of azure-docs
- May be overwhelming for beginners due to the vast amount of information
- Lacks ready-to-use code samples for immediate deployment
Code Comparison
azure-quickstart-templates:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": { ... },
"resources": [ ... ]
}
azure-docs:
# Azure Virtual Machines documentation
Azure Virtual Machines (VM) is one of several types of on-demand, scalable computing resources that Azure offers...
## Quickstart: Create a Windows VM in the Azure portal
1. Sign in to the Azure portal.
2. Select Create a resource in the upper left-hand corner of the Azure portal.
The azure-quickstart-templates repository provides ready-to-deploy ARM templates, making it easier for users to quickly set up Azure resources. On the other hand, the azure-docs repository focuses on providing comprehensive documentation, including conceptual explanations, tutorials, and best practices for using Azure services. While azure-quickstart-templates is more practical for immediate deployment, azure-docs offers a deeper understanding of Azure services and their proper usage.
Azure Command-Line Interface
Pros of azure-cli
- Provides a command-line interface for managing Azure resources directly
- Offers more flexibility and automation capabilities for complex Azure operations
- Supports cross-platform usage (Windows, macOS, Linux)
Cons of azure-cli
- Steeper learning curve for users unfamiliar with command-line interfaces
- Requires installation and regular updates to maintain functionality
- May be overkill for simple, one-off Azure deployments
Code Comparison
azure-quickstart-templates (ARM template):
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"name": "[parameters('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2"
}
]
}
azure-cli (CLI command):
az storage account create \
--name mystorageaccount \
--resource-group myResourceGroup \
--location eastus \
--sku Standard_LRS \
--kind StorageV2
The azure-quickstart-templates repository provides ready-to-use ARM templates for various Azure resources and scenarios, while azure-cli offers a command-line tool for direct Azure resource management. The choice between them depends on the user's preference, expertise, and specific use case requirements.
This repository is for active development of the Azure SDK for Python. For consumers of the SDK we recommend visiting our public developer docs at https://learn.microsoft.com/python/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-python.
Pros of azure-sdk-for-python
- Provides a comprehensive Python SDK for Azure services
- Offers more granular control over Azure resources and operations
- Allows for integration of Azure services into existing Python applications
Cons of azure-sdk-for-python
- Steeper learning curve for developers new to Azure
- Requires more code to achieve specific Azure deployments
- Less suitable for quick prototyping or one-off deployments
Code Comparison
azure-sdk-for-python:
from azure.identity import DefaultAzureCredential
from azure.mgmt.compute import ComputeManagementClient
credential = DefaultAzureCredential()
compute_client = ComputeManagementClient(credential, subscription_id)
vm = compute_client.virtual_machines.begin_create_or_update(
resource_group_name, vm_name, vm_parameters
).result()
azure-quickstart-templates:
{
"type": "Microsoft.Compute/virtualMachines",
"name": "[variables('vmName')]",
"location": "[parameters('location')]",
"properties": {
"hardwareProfile": { "vmSize": "[parameters('vmSize')]" },
"osProfile": { "computerName": "[variables('vmName')]" }
}
}
The azure-sdk-for-python example shows Python code for creating a VM using the SDK, while the azure-quickstart-templates example demonstrates an ARM template snippet for VM creation. The SDK approach offers more programmatic control, while the template provides a declarative infrastructure-as-code solution.
Microsoft Azure PowerShell
Pros of azure-powershell
- Provides a comprehensive set of cmdlets for managing Azure resources
- Offers more granular control over Azure operations
- Supports automation and scripting for complex Azure management tasks
Cons of azure-powershell
- Steeper learning curve, especially for those new to PowerShell
- Requires more detailed knowledge of Azure services and their properties
- May require more lines of code to achieve the same result as a template
Code Comparison
azure-powershell:
New-AzResourceGroup -Name "myResourceGroup" -Location "EastUS"
New-AzStorageAccount -ResourceGroupName "myResourceGroup" `
-Name "mystorageaccount" -Location "EastUS" `
-SkuName "Standard_LRS" -Kind "StorageV2"
azure-quickstart-templates:
{
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"name": "[variables('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2"
}
]
}
The azure-powershell example shows direct cmdlet usage for creating resources, while azure-quickstart-templates uses a declarative JSON format to define the desired state of resources. The template approach is often more concise and easier to read, but may offer less flexibility for complex scenarios compared to PowerShell scripts.
Terraform provider for Azure Resource Manager
Pros of terraform-provider-azurerm
- Provides a declarative approach to infrastructure management
- Offers better version control and collaboration through Git
- Enables easier replication of infrastructure across environments
Cons of terraform-provider-azurerm
- Steeper learning curve for those unfamiliar with Terraform
- Requires additional setup and configuration compared to ARM templates
- May have limitations in supporting the latest Azure features immediately
Code Comparison
azure-quickstart-templates (ARM template):
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[variables('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2"
}
]
}
terraform-provider-azurerm:
resource "azurerm_storage_account" "example" {
name = var.storage_account_name
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
account_tier = "Standard"
account_replication_type = "LRS"
}
Both repositories provide ways to define and deploy Azure resources, but they use different approaches and syntaxes. The azure-quickstart-templates repository uses ARM templates (JSON), while terraform-provider-azurerm uses Terraform's HCL (HashiCorp Configuration Language).
Bicep is a declarative language for describing and deploying Azure resources
Pros of Bicep
- More concise and readable syntax compared to ARM templates
- Improved type safety and error checking during development
- Supports modules for better code organization and reusability
Cons of Bicep
- Steeper learning curve for those familiar with ARM templates
- Limited support for older Azure resources and features
- Requires compilation to ARM templates for deployment
Code Comparison
Bicep:
param storageAccountName string
resource storageAccount 'Microsoft.Storage/storageAccounts@2021-04-01' = {
name: storageAccountName
location: resourceGroup().location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
}
azure-quickstart-templates (ARM):
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[parameters('storageAccountName')]",
"location": "[resourceGroup().location]",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2"
}
The Bicep code is more concise and easier to read, while the ARM template is more verbose and uses JSON syntax. Bicep also allows for easier parameter referencing without the need for brackets and functions.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Azure Resource Manager QuickStart Templates
This repo contains all currently available Azure Resource Manager templates contributed by the community. A searchable template index is maintained at azure.com.
See the Contribution guide for how to use or contribute to this repo.
NOTE
We have finished migration of the samples to subfolders, see azure.com if you need help finding a sample. A few obsolete samples were removed in the migration.
Final Note
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
Top Related Projects
Open source documentation of Microsoft Azure
Azure Command-Line Interface
This repository is for active development of the Azure SDK for Python. For consumers of the SDK we recommend visiting our public developer docs at https://learn.microsoft.com/python/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-python.
Microsoft Azure PowerShell
Terraform provider for Azure Resource Manager
Bicep is a declarative language for describing and deploying Azure resources
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot