Сценарий PowerShell для создания коллекции вместе с базой данных в каждой учетной записи Azure Cosmos DB.

Я создал Azure Cosmos DB с помощью шаблонов ARM. Но с помощью шаблонов ARM вы не можете создать коллекцию по умолчанию вместе с базой данных в базе данных cosmos.

У меня есть несколько учетных записей Cosmos DB, для каждой Azure Cosmos DB я хочу создать одну коллекцию с базой данных, а также вставить в нее несколько фиктивных записей.

Итак, может ли кто-нибудь подсказать мне, как написать сценарий PowerShell для создания коллекции по умолчанию вместе с базой данных в каждой базе данных Azure Cosmos DB.


person Pradeep    schedule 18.01.2019    source источник


Ответы (1)


Пожалуйста, обратитесь к приведенным ниже сценариям PowerShell для создания коллекции с базой данных в базе данных cosmos db:

$primaryKey = ConvertTo-SecureString -String '<your connectString>' -AsPlainText -Force
$cosmosDbContext = New-CosmosDbContext -Account 'jaygongcosmos' -Database 'db' -Key $primaryKey
New-CosmosDbCollection -Context $cosmosDbContext -Id 'MyNewCollection' -OfferThroughput 2500

О вставке фиктивных документов:

0..9 | Foreach-Object {
    $document = @"
{
    `"id`": `"$([Guid]::NewGuid().ToString())`",
    `"content`": `"Some string`",
    `"more`": `"Some other string`"
}
"@
New-CosmosDbDocument -Context $cosmosDbContext -CollectionId 'MyNewCollection' -DocumentBody $document
}

Дополнительные сведения см. В этой статье.


Для нескольких учетных записей используйте приведенный ниже код:

$array= '<your cosmos db account name>',.......
foreach($item in $array){

    $key = Get-CosmosDbAccountMasterKey -Name $item -ResourceGroupName 'jaygong'
    $cosmosDbContext = New-CosmosDbContext -Account $item -Key $key
    New-CosmosDbCollection -Context $cosmosDbContext -Id 'Mytest1' -OfferThroughput 2500 -Database 'db'

}
person Jay Gong    schedule 18.01.2019
comment
Спасибо, @Jay, не могли бы вы обновить свой ответ с помощью нескольких учетных записей cosmos DB. - person Pradeep; 18.01.2019
comment
@pradeep Почему бы просто не зациклить вышеупомянутые сценарии ps и передать имя учетной записи и ключ в качестве параметров? - person Jay Gong; 18.01.2019
comment
когда я запускаю приведенный выше сценарий, я получаю сообщение об ошибке типа The remote server returned an error: (404) Not Found. C:\Program Files\WindowsPowerShell\Modules\CosmosDB\3.1.0.293\CosmosDB.psm1:5275 char:30 - person Pradeep; 18.01.2019
comment
Это ссылка на мою проблему stackoverflow.com/questions/54284155/ - person Pradeep; 21.01.2019
comment
@pradeep Я заметил, что в вашем коде отсутствует -Database 'db' после строки New-CosmosDbCollection -Context $cosmosDbContext -Id $collectionName -PartitionKey 'account' -OfferThroughput 50000 в вашей ссылке. - person Jay Gong; 21.01.2019
comment
@pradeep И я не знаю, почему вы снимаете отметку с этого дела, чтобы создать новое дело для новой проблемы, хотя я предоставил здесь рабочий код. - person Jay Gong; 21.01.2019
comment
@Joy, всякий раз, когда я пытаюсь вставить манекен, я получаю ошибку типа The remote server returned an error: (403) Forbidden. At C:\Program Files\WindowsPowerShell\Modules\CosmosDB\3.1.0.293\CosmosDB.psm1 - person Pradeep; 22.01.2019