团队,我已经创建了新的CosmosDB帐户在Azure门户网站与容器包含收集项目列表。我能够访问容器的详细信息在电源 shell 脚本。
如何使用分区键列出收集项或显示特定收集项(使用Power shell脚本)
Power shell脚本:
Get-AzResource -ResourceType "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers" -ApiVersion "2020-03-01" -ResourceGroupName "testRG" -Name "cosmosaccount1/database1/containercollection1"
3条答案
按热度按时间bvn4nwqk1#
你需要使用类似第三方模块的东西。Azure资源管理器不支持,因此你需要直接与Cosmos DB对话。
https://github.com/PlagueHO/CosmosDB
2nbm6dog2#
Cosmos DB repo有一组使用Powershell的示例:https://github.com/Azure/azure-cosmos-dotnet-v3/tree/master/Microsoft.Azure.Cosmos.Samples/Usage/PowerShellRestApi
特别是阅读项目:https://github.com/Azure/azure-cosmos-dotnet-v3/blob/master/Microsoft.Azure.Cosmos.Samples/Usage/PowerShellRestApi/PowerShellScripts/ReadItem.ps1
它们都使用REST API来执行REST请求,在本例中,这是一个经过验证的
GET
到https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs/{id}
(其中 databaseaccount 是您的帐户名,db-id 是您的数据库ID,coll-id 是您的集合/容器ID,id 是您的文档ID)。5hcedyr03#
正如@4c74356b41所指出的,您可以使用CosmosDB模块,它现在是official Az module的一部分。
您可以使用Get-Commands查看可用命令:
为了获取容器中的所有条目,我们使用 * Get-CosmosDbDocument * 命令:
注:对于可以使用此命令检索的文档数量没有明显的限制,但显然此命令具有API限制,即4MB(如此处所述)。此处的值($documentsPerRequest = 100)可能太大或太小,这取决于每个文档的大小。但我在这里提了一下以防有人需要。
要从容器中获取特定条目或条目组,我们使用相同的 * Get-CosmosDbDocument * 命令,但方式略有不同:
注意:为了简单起见,我没有讨论获取延续令牌的过程,但是如果查询返回的结果大于4 MB,那么我们将只接收响应的第一部分。为了确保不会发生这种情况,我们应该在$getCosmosDbDocumentParameters字典中添加"Query"和"QueryEnableCrossPartition"。