Azure NoSQL cosmosdb 架构验证/锁定

问题描述 投票:0回答:1

我们正在创建基于 .Net core 7 的 CRUD 操作 API。数据库是 Azure NoSQL cosmos db。我们正在使用 CosmosClient。

我们的API现在稳定了。

我们希望确保 api 中的任何新更改不会影响现有架构。我们愿意锁定现有架构。容器中的所有记录都具有相同的架构。我们可以锁定架构吗?因此新 API 的更改即使意外也无法更改数据库记录模式。

azure-cosmosdb
1个回答
0
投票

不是通过服务。 Cosmos DB 是无模式的。

但是,您可以在客户端将架构验证作为应用程序代码的一部分引入。

可与

CosmosClient
一起使用的示例处理程序: https://github.com/Azure/azure-cosmos-dotnet-v3/blob/master/Microsoft.Azure.Cosmos.Samples/Usage/Handlers/SchemaValidationHandler.cs

它让您定义一个模式:

var myContainerSchema = JSchema.Parse(@"{
  'type': 'object',
  'properties': {
    'name': {'type': 'string'}
  },
  'required': ['name']
}");

您可以将其添加到

CosmosClientOptions.CustomHandlers

CosmosClientOptions options = new();
//set other options
options.CustomHandlers.Add(new SchemaValidationHandler((database: "mydb", container: "mycoll2", schema: myContainerSchema)));
© www.soinside.com 2019 - 2024. All rights reserved.