Палец вверх 1
Перевод
Перевод

Вставить документ в БД Cosmos с помощью PowerShell (SQL API)

Я получаю сообщение об ошибке при попытке вставить данные в коллекцию Cosmos DB с ключом раздела.

Без ключа раздела работает нормально

$resourceGroupName = "myrg"
$cosmosDbAccountName = "mydb"
$databaseName = "test"

$cosmosDbContext = New-CosmosDbContext -Account $cosmosDbAccountName -        
Database $databaseName -ResourceGroup $resourceGroupName    

New-CosmosDbCollection -Context $cosmosDbContext -Id 'events' -OfferThroughput 1000 -PartitionKey 'RuleType' -DefaultTimeToLive 604800

$document = @"
{
        "id": "$([Guid]::NewGuid().ToString())",
        "createTime": "2018-05-21T22:59:59.999Z",
        "RuleType": "FTOD"
    }

"@
New-CosmosDbDocument -Context $cosmosDbContext -CollectionId 'events' - 
DocumentBody $document  -PartitionKey 'RuleType'

"RuleType": это мой ключ раздела

введите описание изображения здесь

Invoke-WebRequest: удаленный сервер возвратил ошибку: (400) неверный запрос. В C: \ Program Files \ WindowsPowerShell \ Modules \ CosmosDB \ 2.1.4.536 \ lib \ utils.ps1: 554 char: 30 + ... estResult = Invoke-WebRequest -UseBasicParsing @invokeWebRequestParam ... + ~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ + CategoryInfo: InvalidOperation: (System.Net.HttpWebRequest: HttpWebRequest) [Invoke-WebRequest], WebException + FullyQualifiedErrorId: WebCmdletWebResponseException, Microsoft.PowerShell.Commands.InvokeWebRequestCom

Кто-нибудь знает об этом ??

powershell azure-cosmosdb
задан Pankaj Rawat 16 авг. 2018 г., 14:09:49
источник

1 ответ

Решение 0
Перевод
Перевод

Я воспроизвел вашу проблему на моей стороне.

введите описание изображения здесь

На основе списка параметров, который показывает команда Get-Help New-CosmosDbDocument :

введите описание изображения здесь

Вам нужно добавить partitionkey и вы можете успешно вставить документ.

$resourceGroupName = "***"
$cosmosDbAccountName = "***"
$databaseName = "db"

$cosmosDbContext = New-CosmosDbContext -Account $cosmosDbAccountName -Database $databaseName -ResourceGroup $resourceGroupName    

$document = @"
{
        "id": "6fa9b3d5-ce1a-4b38-9068-9d17de5b1c69",
        "createTime": "2018-05-21T22:59:59.999Z",
        "RuleType": "FTOD"           
    }

"@
$partitionkey = "FTOD"
New-CosmosDbDocument -Context $cosmosDbContext -CollectionId 'part' -DocumentBody $document -PartitionKey $partitionkey

Надеюсь, это поможет вам.

ответ дан Jay Gong 28 авг. 2018 г., 10:25:06
источник