2016-02-20 3 views
5

Ich kann ein Azure-Blob nicht löschen, da es über eine unendliche Lease verfügt. Ich versuche nun, diese Lease mit der BreakLease() -Methode zu brechen.Azure BreakLease gibt 409 zurück Konfliktfehler

Hier sind die Befehle, die ich in Power Ausführen bin:

$StorageAccountName = "storage account name" 
$ContainerName = "container name" 
$BlobName = "blob name 

[Reflection.Assembly]::LoadFile("C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ServiceManagement\Azure\Azure.Storage\Microsoft.WindowsAzure.Storage.dll") 
$Keys = Get-AzureStorageKey -StorageAccountName $StorageAccountName 
$StorageAccountKey = $Keys[0].Primary 
$Creds = New-Object Microsoft.WindowsAzure.Storage.Auth.StorageCredentials($StorageAccountName,$StorageAccountKey) 
$CloudStorageAccount = New-Object Microsoft.WindowsAzure.Storage.CloudStorageAccount($Creds, $true) 
$CloudBlobClient = $CloudStorageAccount.CreateCloudBlobClient() 
$BlobContainer = $CloudBlobClient.GetContainerReference($ContainerName) 
$Blob = $BlobContainer.ListBlobs() | Where{$_.Name -eq $BlobName} 
$Blob.Properties 
$Blob.BreakLease($(New-TimeSpan), $null, $null, $null) 

Die BLOB Eigenschaft Ausgabe ist:

CacheControl     : 
ContentDisposition   : 
ContentEncoding    : 
ContentLanguage    : 
Length      : 1098437886464 
ContentMD5     : 
ContentType     : application/octet-stream 
ETag       : "0x8D33831477A9F90" 
LastModified     : 2/18/2016 7:01:09 AM +00:00 
BlobType      : PageBlob 
LeaseStatus     : Locked 
LeaseState     : Leased 
LeaseDuration     : Infinite 
PageBlobSequenceNumber  : 
AppendBlobCommittedBlockCount : 

Die Fehlermeldung auf dem BreakLease() Methodenaufruf ist:

Exception calling "BreakLease" with "4" argument(s): "The remote server returned an error: (409) Conflict." 
At line:1 char:20 
+ $Blob.BreakLease($(New-TimeSpan), $null, $null, $null) 
+     ~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (:) [], MethodInvocationException 
    + FullyQualifiedErrorId : StorageException 

Irgendwelche Ideen?

Antwort

0

Ich denke, Sie zielen nicht auf die richtige Art von Ressource. Sie führen die BreakLease Methode auf eine andere Art von Ressource und nicht TypeName: Microsoft.WindowsAzure.Storage.Blob.CloudBlob

ich den gleichen Fehler aufweisen, wenn Targeting:

TypeName: Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob 
0

ich mit Klecksen in der gleichen Ausgabe lief die VM Scheiben repräsentieren an VMs in Azure-Verfügbarkeitssätzen Wenn alle Stricke reißen, werde ich meine Verschlüsselung Skript aktualisieren, um festzustellen, ob eine VM in einer Verfügbarkeit gesetzt ist und wenn es ist, das folgende Verfahren zu verwenden:

  1. Speicher, um die VM-Konfigurations
  2. Löschen der VM, aber behalten Sie die Platten und NIC
  3. Verschlüsseln Sie die Disk Blobs (brechen die Miete sollte nicht mehr benötigt werden, seit die VM gelöscht wurde)
  4. Erstellen Sie die VM in der Verfügbarkeit mit seiner aufgezeichneten Konfiguration Set, und fügen Sie die alte NIC und die jetzt verschlüsselten Plattenblobs

HTH

Verwandte Themen