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

Azure存储容器中Blob无法删除,租赁状态异常求助

解决Azure存储中Broken租赁状态Blob无法删除的问题

1. 强制解除Broken租赁

Broken租赁会锁定Blob,导致删除操作失败,优先执行租赁解除:

  • Azure CLI 命令:

    az storage blob lease break --account-name <存储账户名> --container-name <容器名> --name <Blob文件名> --connection-string "<存储连接字符串>"
    

    执行后确认租赁剩余时间返回值,验证租赁已解除。

  • PowerShell 命令:

    $context = New-AzStorageContext -ConnectionString "<存储连接字符串>"
    Break-AzStorageBlobLease -Container "<容器名>" -Blob "<Blob文件名>" -Context $context
    

2. 调整Azure Function超时限制

你的删除代码运行在Azure Function中,默认函数超时为30分钟,会优先于BlobClient的超时配置触发终止。需修改函数配置:

  • 在Azure门户进入目标Function App,打开配置 > 函数运行时设置,根据你的服务计划调整函数超时时间(Consumption计划最长10分钟,Premium/Dedicated计划最长60分钟),调整后重新执行删除逻辑。

3. 优化删除代码

原代码中冗余的下载操作会增加耗时,直接执行删除并优先解除租赁:

var blobContainerName = Environment.GetEnvironmentVariable("ContainerName");
var blobConnectionString = Environment.GetEnvironmentVariable("BlobConnectionString");
var blobClientOptions = new BlobClientOptions()
{
    Retry = 
    { 
        MaxDelay = TimeSpan.FromMinutes(5), 
        NetworkTimeout = TimeSpan.FromHours(1),
        Mode = RetryMode.Exponential
    }
};
var container = new BlobContainerClient(blobConnectionString, blobContainerName, blobClientOptions);
var blobClient = container.GetBlockBlobClient(fileName);
// 先解除租赁
await blobClient.BreakLeaseAsync(TimeSpan.Zero);
// 执行删除
var deleteResult = await blobClient.DeleteIfExistsAsync();

4. 用Azure存储资源管理器强制删除

若之前删除失败,尝试:

  • 右键目标Blob,选择高级 > 强制删除(需确保开启显示高级选项)
  • 刷新容器或重新连接存储账户后再次操作。

5. 提交Azure支持工单

如果以上方法均无效,说明Blob可能存在服务端异常状态,直接提交Azure支持工单,提供Blob完整路径、租赁状态截图和操作失败日志,请求后台团队协助清理。

内容的提问来源于stack exchange,提问作者Kunal Chawla

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 01:00:09