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

如何通过Azure或Terraform自动删除创建时间超过1年的Azure存储账户容器

如何通过Azure或Terraform自动删除创建时间超过1年的Azure存储账户容器

我懂你现在的困扰——每个月都要创建存储容器,时间久了旧容器堆得越来越多,想自动删掉创建超过1年的那些,而且你已经试过Azure存储生命周期管理,发现它只能清理容器里的文件,没法直接删掉容器本身对吧?别着急,下面给你两种靠谱的实现方案,分别用Azure原生工具和Terraform来做:

一、用Azure原生工具实现自动化删除

Azure本身没有直接的内置功能自动删容器,但可以组合CLI脚本和自动化服务来实现:

  • 步骤1:编写筛选并删除旧容器的Azure CLI脚本
    先通过CLI列出所有创建时间超过1年的容器,再循环删除它们。示例命令如下(记得替换成你的存储账户名):
    # 筛选出创建超过1年的容器名称
    OLD_CONTAINERS=$(az storage container list --account-name <你的存储账户名> --query "[?properties.createdOn < '$(date -d '-1 year' +%Y-%m-%dT%H:%M:%SZ')].name" --output tsv)
    
    # 循环删除这些容器
    for CONTAINER in $OLD_CONTAINERS; do
        az storage container delete --account-name <你的存储账户名> --name $CONTAINER
    done
    
  • 步骤2:设置自动化触发
    把这个脚本放到Azure自动化账户的Runbook里,然后创建一个每月触发的计划(比如每月1号执行),这样就能自动定期清理旧容器了。你也可以用逻辑应用:设置每月触发的触发器,调用「列出存储容器」动作,添加条件判断容器的创建时间是否早于1年前,再调用「删除存储容器」动作完成清理。

二、用Terraform配合脚本实现自动化删除

Terraform是声明式的IaC工具,默认不会自动删除不在配置里的资源,但可以结合外部脚本和null_resource来实现:

  • 示例代码实现
    用external数据源调用Azure CLI筛选旧容器,再用null_resource的local-exec执行删除命令:
    variable "storage_account_name" {
      type        = string
      description = "你的Azure存储账户名称"
    }
    
    # 调用CLI筛选出创建超过1年的容器
    data "external" "old_containers" {
      program = [
        "bash",
        "-c",
        "az storage container list --account-name ${var.storage_account_name} --query '[?properties.createdOn < \"$(date -d '-1 year' +%Y-%m-%dT%H:%M:%SZ')\"].name' --output json"
      ]
    }
    
    # 循环删除符合条件的容器
    resource "null_resource" "delete_old_containers" {
      for_each = toset(jsondecode(data.external.old_containers.result))
    
      provisioner "local-exec" {
        command = "az storage container delete --account-name ${var.storage_account_name} --name ${each.key}"
      }
    }
    
  • 自动化执行
    你可以把这个Terraform配置放到Azure DevOps Pipeline或者GitHub Actions里,设置每月触发的流水线,每次执行terraform apply时就会自动清理旧容器。

注意:不管用哪种方案,操作前一定要先在测试环境验证脚本逻辑,避免误删重要容器;同时确保执行脚本的账号拥有「Storage Blob Data Contributor」或「Storage Account Contributor」权限。

备注:内容来源于stack exchange,提问作者Ashraf Baig

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 14:59:28