在Stackoverflow上有一些关于这个问题的问题,但所有这些问题都是由于虚拟机及其磁盘而存在的租约。然后,答案是首先删除磁盘,以便能够删除存储帐户/容器。
示例:How do I delete an Azure storage account containing a leased blob?
我的问题是,我有一个自定义的审计日志,我们使用了一个租用的容器(我们不希望任何人操纵日志obv。)但是我们将这些日志移到了其他地方,所以现在我想删除旧的资源。但由于租借锁定而无法访问。
这很可能是因为我不了解租赁是如何工作的。我的第一次尝试是打破租约并解锁..这是已经完成的:

我的假设是我现在可以删除资源,但我仍然得到错误:
“无法从%1容器中删除%1: auditlog- container : ContainerProtectedFromDeletion:由于ImmutabilityPolicy,存储帐户stgutauditlog容器auditlog-container不会被删除。”
因此,查看此ImmutablePolicy,我尝试了Blob Containers - Delete Immutability Policy,但得到了错误消息:
{
"error": {
"code": "ContainerImmutabilityPolicyFailure",
"message": "Operation not allowed on immutability policy with incorrect etag."
}
}查看eTag,您应该在If-Match报头中检查eTag版本(仅与eTag相关的参数)。但是我试着添加了eTag,the *和其他的,但仍然是相同的消息。
尝试使用Blob Containers - Get Immutability Policy命令来尝试获取eTag,我只获得了提供的eTag等等
{
"id": "/subscriptions/<removed>/resourceGroups/<removed>/providers/Microsoft.Storage/storageAccounts/<removed>/blobServices/default/containers/auditlog-container/immutabilityPolicies/default",
"name": "default",
"type": "Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies",
"etag": "\"<removed>\"",
"properties": {
"immutabilityPeriodSinceCreationInDays": 8,
"state": "Locked"
}
}(删除了上面代码中标记为removed的一些安全信息)
这里写着锁着..。但是我如何删除这个锁??
此外,删除其中的文件也是不可能的,选项呈灰色显示:

我不知道下一步该走什么,也不知道我错过了什么。如何删除此存储帐户/容器?
任何有用的帮助!
发布于 2019-01-09 00:05:19
发布于 2019-01-08 20:11:41
如果租赁状态可用,我建议您尝试使用下面的Power Shell脚本来删除特定的容器。看看这对你有没有帮助。
Login-AzureRmAccount
Set-AzureRmContext -SubscriptionID "yoursubscription id"
$ResourceGroupName = "your resourcegroup name"
$StorageAccountName = "your storage account name"
$StorageContainerNames = "container1, container2"
try{
## Get Storage Details
Write-Output ("Get Storage Account $StorageAccountName Keys")
$Keys = Get-AzureRmStorageAccountKey -ResourceGroupName $ResourceGroupName -Name $StorageAccountName;
Write-Output ("Get Storage Account $StorageAccountName Context")
$StorageContext = New-AzureStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $Keys[0].Value;
## Proccess Each Container
$StorageContainerNames.Split(",") | ForEach {
$currentContainer = $_
Write-Output ("Start Remove for Container $currentContainer")
## Remove Container
if ((Get-AzureStorageContainer -Context $StorageContext | Where-Object { $_.Name -eq $currentContainer })){
## Remove a Blob Container in the Storage Account
Write-Output ("Removing Container: $currentContainer")
Remove-AzureStorageContainer -Context $StorageContext -Name $currentContainer -Force;
Write-Output ("Container $currentContainer Removed")
}
else {
Write-Warning "Container $currentContainer doesn't exists."
}
}
}catch {
Write-Error "$_.Exception.Message"
} https://stackoverflow.com/questions/54090887
复制相似问题