用于在每个 Azure Cosmos DB 帐户中创建集合和数据库的 PowerShell 脚本

PowerShell script for creating collection along with database in each Azure Cosmos DB Account

我使用 ARM 模板创建了 Azure Cosmos DB。但是使用 ARM 模板,您无法在 cosmos db 中创建默认集合和数据库。

我有多个 Cosmos DB 帐户,对于每个 Azure Cosmos DB,我想创建一个包含数据库的集合,并向其中插入一些虚拟记录。

所以,谁能建议我如何编写 PowerShell 脚本来创建默认集合以及每个 Azure Cosmos DB 中的数据库。

请参考以下 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
}

更多详情,请参考此article


对于多个帐户,请使用以下代码:

$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'

}