代码之家  ›  专栏  ›  技术社区  ›  silent

如何在部署管道中正确配置数据库和集合?

  •  0
  • silent  · 技术社区  · 7 年前

    this 反馈线程:

    在Cosmos数据库中,所有资源,如数据库、集合/表/图、用户、权限、文档/项/节点/边、附件,都是运行时资源。您可以使用运行时sdk和restapi对这些资源进行CRUD/查询。[…]所有运行时资源[…]都应该由开发人员直接在其应用程序中使用。

    因此,只能使用ARM(Azure资源管理器)配置资源“CosmosDB”,例如,在CI/CD管道中,使用Azure DevOps。

    所以现在我的问题是: 在CosmosDB帐户中创建数据库和集合的正确方法是什么?

    [DocumentDB("ToDoList", "Migration", ConnectionStringSetting = "CosmosDB", CreateIfNotExists = true)] IAsyncCollector<Document> documentsToStore)

    创建数据库和集合。手动实例化DocumentClient我可以使用 await client.CreateDatabaseIfNotExistsAsync(database);

    但是:这是正确的方法吗??例如,在函数绑定中这样做意味着在第一次执行函数之前不会创建集合。只是感觉不对。

    1 回复  |  直到 7 年前
        1
  •  -1
  •   Simon Bourdeau    7 年前

    这个问题的答案完全取决于你试图构建的功能的意图。如果函数假定它可以读取/更新/删除集合中可能存在或可能不存在的文档,则“是”建议挑战集合,然后在该集合尚不存在时动态创建它。

    如果由于其他工具依赖于集合而需要创建集合,并且该集合是可预测的集合,则可以预先创建它们,但如果无法预测集合名称或编号,则处于绑定状态。