GOOGLE ADS

Mittwoch, 20. April 2022

PowerShell REST DELETE aus der Azure Storage-Kontotabelle

Ich kämpfe mit einer REST-Methode zum LÖSCHEN eines Eintrags über PowerShell aus einem Azure-Speicherkonto. Ich authentifiziere mich mit einer SharedAccessSignature (SAS) (hat Rechte zum Lesen, Schreiben und Löschen), um Einträge zu erstellen, aber ich bekomme dies nicht zum Laufen, um auch Einträge zu LÖSCHEN. Hat jemand bereits ein PowerShell-Skript zum Löschen von Azure Storage-Kontotabellen aus PowerShell erstellt und könnte mir ein Code-Snippet zur Vorgehensweise senden?

Ich verwende nicht das PowerShell-Modul, sondern das CMDlet "Invoke-WebRequest". Ich bin neu bei REST-APIs, also habe ich vielleicht einfach nicht die richtige Idee? Für die Eintragserstellung verwende ich die URI im Invoke-WebRequest-Aufruf, um das SAS-Token als Authentifizierung anzugeben, aber das Ändern der "-Method POST" in "-Method DELETE" funktioniert nicht.

Danke für Ihre Hilfe


Lösung des Problems

Verwenden Sie zum Löschen der Tabelle mithilfe der REST-Methode die folgende Beispielabfrage, falls hilfreich:


  • Anstatt „Invoke-WebRequest" zu verwenden, verwenden Sie „Invoke-RestMethod" wie unten


function DeleteTableEntity($TableName,$PartitionKey,$RowKey) {
$resource = "$tableName(PartitionKey='$PartitionKey',RowKey='$Rowkey')"
$table_url = "https://$storageAccount.table.core.windows.net/$resource"
$GMTTime = (Get-Date).ToUniversalTime().toString('R')
$stringToSign = "$GMTTime`n/$storageAccount/$resource"
$hmacsha = New-Object System.Security.Cryptography.HMACSHA256
$hmacsha.key = [Convert]::FromBase64String($accesskey)
$signature = $hmacsha.ComputeHash([Text.Encoding]::UTF8.GetBytes($stringToSign))
$signature = [Convert]::ToBase64String($signature)
$headers = @{
'x-ms-date' = $GMTTime
Authorization = "SharedKeyLite " + $storageAccount + ":" + $signature
Accept = "application/json;odata=minimalmetadata"
'If-Match' = "*"
}
$item = Invoke-RestMethod -Method DELETE -Uri $table_url -Headers $headers -ContentType application/http
}

Weitere Einzelheiten finden Sie unter dem folgenden Link:

Verwenden Sie Azure Table Storage über PowerShell und die Rest-API – GCITS


  • Andernfalls können Sie das PowerShell-Modul installieren und das folgende Skript wie folgt verwenden:


$resourceGroup = 'ResourceGroupName'
$storageAccountName = 'StorageAccountName'
$storageAccount = Get-AzStorageAccount -ResourceGroupName $resourceGroup -Name $storageAccountName
$ctx = $storageAccount.Context
$tables = (Get-AzStorageTable -Context $Ctx).name
ForEach ($table in $tables) {
Remove-AzStorageTable –Name $table –Context $ctx -Force
}

Weitere Einzelheiten finden Sie unter dem folgenden Link:

Löschen Sie alle Tabellen im Azure-Speicher mit Powershell | Mike sagt Meh.

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...