You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Blob Storage:能否通过PowerShell定义预览版自动化任务?

使用PowerShell实现自动删除早于X天的Azure Blob

完全可行,目前Azure PowerShell模块已提供成熟的工具链来实现该需求,以下是两种主流实现方案:

方案一:直接遍历删除脚本(自定义场景适用)

适合需要额外自定义逻辑的场景,脚本示例:

# 配置参数
$storageAccountName = "你的存储账户名"
$containerName = "目标容器名"
$daysToKeep = 30 # 设定保留天数,早于此天数的Blob会被删除
$context = New-AzStorageContext -StorageAccountName $storageAccountName -UseConnectedAccount

# 获取所有符合过期条件的Blob
$oldBlobs = Get-AzStorageBlob -Container $containerName -Context $context | 
            Where-Object { $_.LastModified -lt (Get-Date).AddDays(-$daysToKeep) }

# 执行删除操作
if ($oldBlobs.Count -gt 0) {
    $oldBlobs | Remove-AzStorageBlob -Context $context
    Write-Host "已删除 $($oldBlobs.Count) 个过期Blob"
} else {
    Write-Host "未找到符合条件的过期Blob"
}

方案二:配置生命周期管理规则(官方推荐,更高效)

通过PowerShell创建存储账户的生命周期规则,由Azure后台自动执行清理,无需手动维护脚本运行:

# 配置参数
$storageAccountName = "你的存储账户名"
$resourceGroupName = "资源组名称"
$ruleName = "DeleteOldBlobsRule"
$daysToKeep = 30

# 获取目标存储账户
$storageAccount = Get-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName

# 创建并应用生命周期规则
$rule = New-AzStorageAccountManagementPolicyRule -Name $ruleName -ActionDeleteAfterDays $daysToKeep -FilterBlobType "blockBlob"
Set-AzStorageAccountManagementPolicy -StorageAccount $storageAccount -Rule $rule

计划任务配置(针对方案一)

如果使用脚本遍历的方式,可通过以下两种途径实现定时执行:

  • 本地Windows环境:利用任务计划程序创建定时任务,指定PowerShell脚本路径,确保执行账号拥有Azure存储的Blob删除权限。
  • Azure自动化账户:将脚本上传至Azure自动化账户创建运行书,设置定时触发规则,无需依赖本地机器。

权限要求

执行操作的账号需拥有Storage Blob Data Contributor或更高权限,确保能读取并删除目标Blob。

内容的提问来源于stack exchange,提问作者Cristian Vasuica

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 17:47:24