使用 ARM 模板部署 Azure Storage
发布: (2026年2月8日 GMT+8 23:05)
3 分钟阅读
原文: Dev.to
Source: Dev.to
介绍
Azure 资源管理器 (ARM) 提供了一种在 Azure 中组织资源的方式。使用 ARM,您可以将 Azure 资源定义并部署为一个称为 资源组 的单一逻辑单元,资源组可以包含虚拟机、存储账户、网络接口等。
ARM 模板是定义基础设施即代码 (IaC) 的 JSON 文件。本指南展示了如何使用以下方式部署 Azure 存储账户:
- ARM 模板
- PowerShell 部署脚本
- Azure DevOps 流水线
前提条件
- Azure 订阅
- 在 Azure DevOps 项目中已创建指向该订阅的服务连接
仓库结构
├── deploy.ps1 # PowerShell 脚本(创建资源组 + 部署模板)
├── azure-pipelines.yml # CI/CD 流水线定义
└── storageaccount.json # ARM 模板定义
PowerShell 部署脚本 (deploy.ps1)
param(
[string]$ResourceGroupName,
[string]$StorageAccountName,
[string]$Location,
[string]$Sku = "Standard_LRS"
)
$scriptDir = $PSScriptRoot
$template = Join-Path $scriptDir "storageaccount.json"
Write-Host "Checking if resource group '$ResourceGroupName' already exists..."
Start-Sleep -Seconds 2
$exists = (az group exists --name $ResourceGroupName) -eq 'true'
if (-not $exists) {
Write-Host "Resource group '$ResourceGroupName' does not exist. Creating..."
az group create --name $ResourceGroupName --location $Location | Out-Null
if ($LASTEXITCODE -ne 0) { throw "Failed to create resource group." }
} else {
Write-Host "Resource group '$ResourceGroupName' already exists."
}
Write-Host "Deploying Azure ARM template.."
az deployment group create `
--resource-group $ResourceGroupName `
--template-file $template `
--parameters "storageAccountName=$StorageAccountName" "sku=$Sku" "location=$Location"
if ($LASTEXITCODE -ne 0) {
Write-Error "ARM deployment failed."
return $false
}
Write-Host "Deployment successful by Alvaro! 🚀"
Azure Pipelines 定义 (azure-pipelines.yml)
trigger:
branches:
include:
- main
pool:
vmImage: 'ubuntu-latest'
variables:
resourceGroupName: 'Asgard'
storageAccountName: 'storageaccountasgard'
location: 'West Europe'
sku: 'Standard_LRS'
steps:
- task: AzureCLI@2
displayName: 'Deploy Storage Account ARM Template'
inputs:
azureSubscription: 'Marty-MacFly' # Service Connection name in Azure DevOps
ScriptType: pscore
ScriptPath: '$(System.DefaultWorkingDirectory)/deploy.ps1'
ScriptArguments: >-
-ResourceGroupName "$(resourceGroupName)"
-StorageAccountName "$(storageAccountName)"
-Location "$(location)"
-Sku "$(sku)"
运行流水线
- 将文件提交到 Azure DevOps 仓库的
main分支。 - 流水线会自动触发(或手动运行)。
- PowerShell 脚本会在资源组不存在时创建它,并部署
storageaccount.jsonARM 模板。
验证
流水线完成后,登录 Azure 门户,确认新的存储账户(storageaccountasgard)已在 West Europe 区域创建。