我们的Powershell测试工具调用了databricks,它会在azure存储中生成镶木地板文件。
在测试运行后,线束尝试清理实木复合地板(和其他文件)时,它将搜索所有斑点(在给定位置)并将其删除。可见,在清理后在azure门户中查看时无法再看到这些blob,但是当脚本再次运行时,它会在每次测试运行后发现越来越多的可用blob要删除。
这是一些软/硬删除策略吗?
在删除blob时,我没有指定快照参数,因为我不希望保留快照。
使用的一些代码是:
$availableBlobs = Get-AzStorageBlob -Container $remoteContainer -Context $ctx
$ctx = GetStorageContext -storageaccountName $remoteStorageAccount -storageaccountkey $remoteStorageKey
$availableBlobs = Get-AzStorageBlob -Container $remoteContainer -Context $ctx
Remove-AzStorageBlob -Container $using:remoteContainer -Blob $blob.Name -Force -Context $using:ctx -ErrorAction SilentlyContinue
为什么remove-AzStorageBlob似乎完全删除了blob-使得blob不再可见,但似乎增加了下次运行清理脚本时发现的blob数量?
其他信息 从remote-AzStorageBlob中删除Remove -ErrorAction SilentlyContinue之后,似乎在删除所有$ availableBlobs的途中,看到错误500:
在随后尝试运行相同代码时,错误没有出现在同一点。
答案 0 :(得分:1)
您可能正在达到基础API请求限制。尽管它们没有明确的“删除”请求编号,但如果我们假设它类似于“写入”请求,则API每秒会被限制为10个请求(Storage resource provider limits)。像这样的脚本很容易超过这个范围。
只需添加Start-Sleep -Milliseconds 100
语句或等效语句即可减慢API处理的请求。