Getting "The remote server returned an error: (409) Conflict." when trying to add rows into azure table
Getting "The remote server returned an error: (409) Conflict." when trying to add rows into azure table
我正在尝试使用 PowerShell 上传 azure table 行,但我收到以下错误。这可能是由于错误的 Azure 存储 powershell 模块造成的吗?我正在使用 Azure.Storage 4.0.2 模块。
代码如下:
# Getting all the resource group
$resource_group_list = Get-AzureRmResourceGroup
# Iterating through the resource group
foreach($resource_group_list_iterator in $resource_group_list){
# Since the solution applies for virtual machines,
# obtain the list of virtual machines for the resource group
$virtual_machine_list = get-azurermvm -ResourceGroupName $resource_group_list_iterator.ResourceGroupName
# Proceed only when resource group contains virtual machines
if(!($virtual_machine_list -eq $null)){
# Iterate through the virtual machine list
foreach($virtual_machine_list_iterator in $virtual_machine_list){
# Creat an unique ID by concatinating 'Resource Group name' and 'Virtual Machine name'
$unique_id = $resource_group_list_iterator.ResourceGroupName + "__" + $virtual_machine_list_iterator.name
Write-Host $unique_id
# Obtain the tags associated with the virtual machines
$virtual_machine_tags = (get-azurermvm -ResourceGroupName $resource_group_list_iterator.ResourceGroupName -Name $virtual_machine_list_iterator.name).Tags
# Iterate over the tags to match the tag that we are looking for
foreach($tag_iterator in $virtual_machine_tags){
if($tag_iterator.keys -eq 'owner' -and $tag_iterator.values -eq 'ibm'){
# Store the tags in a variable to later store it in Azure table
$virtual_machine_tag = $tag_iterator.keys.ToString()
$virtual_machine_value = $tag_iterator.Values.ToString()
$partitionKey1 = $unique_id
if($virtual_machine_tag -eq $null) {$virtual_machine_tag = $null}
if($virtual_machine_value -eq $null) {$virtual_machine_value = $null}
$hash = @{}
$hash.Add('uniqueid',$unique_id)
$hash.Add('key',$virtual_machine_tag)
$hash.add('value',$virtual_machine_value)
Add-StorageTableRow `
-table $azure_table_object `
-partitionKey $partitionKey1 `
-rowKey ("CA") `
-property $hash
#Write-Output "Key: " $tag_iterator.keys
#Write-Output "Value: " $tag_iterator.Values
}
}
#Write-Host "Tags: " $virtual_machine_tags
#Write-Host " "
}
}
}
以下是我收到的例外情况:
Exception calling "Execute" with "1" argument(s): "The remote server returned an
error: (409) Conflict."
At C:\Program Files\WindowsPowerShell\Modules\AzureRmStorageTable.0.0.21\AzureRmS
torageTableCoreHelper.psm1:267 char:16
+ ... return ($table.CloudTable.Execute((invoke-expression "[Microsoft ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : StorageException
我浏览了一些关于如何排除故障的在线资源,但没有找到任何解决方案。
正如 junnas 提到的那样,409 错误意味着添加与现有行具有相同分区键和行键的行。
你可以在插入table.If之前打印partition Key and row key想要得到unique_id我们可以使用Guid,请尝试使用$unique_id = $resource_group_list_iterator.ResourceGroupName + "__" + $virtual_machine_list_iterator.name+[guid]::newguid()
注意:在你的情况下,我建议你可以使用 vaule CA 作为分区键和 $ unique_id 作为行键。
我正在尝试使用 PowerShell 上传 azure table 行,但我收到以下错误。这可能是由于错误的 Azure 存储 powershell 模块造成的吗?我正在使用 Azure.Storage 4.0.2 模块。
代码如下:
# Getting all the resource group
$resource_group_list = Get-AzureRmResourceGroup
# Iterating through the resource group
foreach($resource_group_list_iterator in $resource_group_list){
# Since the solution applies for virtual machines,
# obtain the list of virtual machines for the resource group
$virtual_machine_list = get-azurermvm -ResourceGroupName $resource_group_list_iterator.ResourceGroupName
# Proceed only when resource group contains virtual machines
if(!($virtual_machine_list -eq $null)){
# Iterate through the virtual machine list
foreach($virtual_machine_list_iterator in $virtual_machine_list){
# Creat an unique ID by concatinating 'Resource Group name' and 'Virtual Machine name'
$unique_id = $resource_group_list_iterator.ResourceGroupName + "__" + $virtual_machine_list_iterator.name
Write-Host $unique_id
# Obtain the tags associated with the virtual machines
$virtual_machine_tags = (get-azurermvm -ResourceGroupName $resource_group_list_iterator.ResourceGroupName -Name $virtual_machine_list_iterator.name).Tags
# Iterate over the tags to match the tag that we are looking for
foreach($tag_iterator in $virtual_machine_tags){
if($tag_iterator.keys -eq 'owner' -and $tag_iterator.values -eq 'ibm'){
# Store the tags in a variable to later store it in Azure table
$virtual_machine_tag = $tag_iterator.keys.ToString()
$virtual_machine_value = $tag_iterator.Values.ToString()
$partitionKey1 = $unique_id
if($virtual_machine_tag -eq $null) {$virtual_machine_tag = $null}
if($virtual_machine_value -eq $null) {$virtual_machine_value = $null}
$hash = @{}
$hash.Add('uniqueid',$unique_id)
$hash.Add('key',$virtual_machine_tag)
$hash.add('value',$virtual_machine_value)
Add-StorageTableRow `
-table $azure_table_object `
-partitionKey $partitionKey1 `
-rowKey ("CA") `
-property $hash
#Write-Output "Key: " $tag_iterator.keys
#Write-Output "Value: " $tag_iterator.Values
}
}
#Write-Host "Tags: " $virtual_machine_tags
#Write-Host " "
}
}
}
以下是我收到的例外情况:
Exception calling "Execute" with "1" argument(s): "The remote server returned an
error: (409) Conflict."
At C:\Program Files\WindowsPowerShell\Modules\AzureRmStorageTable.0.0.21\AzureRmS
torageTableCoreHelper.psm1:267 char:16
+ ... return ($table.CloudTable.Execute((invoke-expression "[Microsoft ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : StorageException
我浏览了一些关于如何排除故障的在线资源,但没有找到任何解决方案。
正如 junnas 提到的那样,409 错误意味着添加与现有行具有相同分区键和行键的行。
你可以在插入table.If之前打印partition Key and row key想要得到unique_id我们可以使用Guid,请尝试使用$unique_id = $resource_group_list_iterator.ResourceGroupName + "__" + $virtual_machine_list_iterator.name+[guid]::newguid()
注意:在你的情况下,我建议你可以使用 vaule CA 作为分区键和 $ unique_id 作为行键。