Gewusst wie: einfügen einer Zeile in einem Azure Storage-Tabelle mithilfe von PowerShell
Ich war froh, das Neue-AzureStorageTable cmdlet, aber ich habe nicht herausgefunden, wie das einfügen einer neuen Zeile in der Tabelle.
Fand ich folgenden code im internet, aber die CloudTable.Ausführen scheint zu scheitern.
Braucht es drei Argumente, wie beschrieben, in http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.storage.table.cloudtable.execute(v=azure.10).aspx aber ich kann nicht herausfinden, wie man die Methode aufrufen kann.
Alle Ideen sind willkommen!
function InsertRow($table, [String]$partitionKey, [String]$rowKey, [int]$intValue)
{
$entity = New-Object "Microsoft.WindowsAzure.Storage.Table.DynamicTableEntity" $partitionKey, $rowKey
$entity.Properties.Add("IntValue", $intValue)
$result = $table.CloudTable.Execute([Microsoft.WindowsAzure.Storage.Table.TableOperation]::Insert($entity))
}
$StorageAccountName = "MyAccountName"
$StorageAccountKey = "MyAccountKey"
$context = New-AzureStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey
$table = New-AzureStorageTable test -Context $context
for ($p = 1; $p -le 10; $p++)
{
for ($r = 1; $r -le 10; $r++)
{
InsertRow $table "P$p" "R$r" $r
}
}
UPDATE
Wie unten vorgeschlagen, die Sie haben, die Verwendung von Get-AzureStorageTable um zu überprüfen, ob die Tabelle bereits existiert zuerst.
$tablename = "test"
$table = Get-AzureStorageTable $tablename -Context $context -ErrorAction Ignore
if ($table -eq $null)
{
New-AzureStorageTable $tablename -Context $context
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist eine Alternative Implementierung mittels Storage Client Library (
Microsoft.WindowsAzure.Storage.dll
) nur.UPDATE
Ich habe gerade versucht den code von oben und es funktioniert einwandfrei
if the table does not exist in storage
. Ich war in der Lage, den Fehler zu reproduzieren, die Sie bekommen, wenn ich versuche, führen Sie dieses Skript für eine Tabelle, die bereits in der Lagerung. Ich denke, das ist, was passiert ist: Beim Aufruf derNew-AzureStorageTable
um eine Tabelle zu erstellen, wenn die Tabelle bereits vorhanden ist, dann wirft es eine Fehlermeldung aus und gibt einnull
Wert für$table
variable und dann, wenn Sie versuchen, auszuführenInsertRow
Funktion mit diesernull
bewertet$table
variable, erhalten Sie Fehler aufExecute
Funktion. IdealerweiseNew-AzureStorageTable
sollten keine Fehler aus wenn die Tabelle bereits vorhanden ist.