在源代码管理中以及对于CI / CD

时间:2020-02-07 13:15:18

标签: azure-cosmosdb

对于我们的存储过程,我们在CD期间使用了一种效果很好的方法,该方法利用javascript v2 SDK来调用container.storedProcedures.upsert。 Upsert现在已从v3的API中删除,因为未分区的集合(从现在开始,您将只能创建它)不支持它。

我认为v3 SDK至少可以删除并重新创建这些对象,但是据我所知,它仅允许创建:https://docs.microsoft.com/en-us/javascript/api/%40azure/cosmos/storedprocedures?view=azure-node-latest 我们采用了类似的方法来维护索引定义的更新,这是我们现在需要迁移到v3 SDK的主要原因,否则将无法通过v2更新某些类型的索引。

鉴于我们想要的(如果可能的话)是能够将所有这些对象保持在源代码控制中并在CD期间自动部署它们,那么推荐的方法是什么?

(与此同时,我正在探索使用以下这些powershell命令:https://github.com/PlagueHO/CosmosDB,但是尝试通过它们创建UDF导致非常奇怪的结果,其中Azure门户停止向我显示 any UDF直到我删除了我使用New-CosmosDbUserDefinedFunction创建的那张照片为止

1 个答案:

答案 0 :(得分:2)

今天有一些选择,在接下来的几个月中,您的选择会变得更好。

Cosmos现在支持使用ARM模板创建存储过程,触发器和UDF。此页面上的第二个示例具有一个显示此内容的ARM模板。 https://github.com/jasmine/jasmine/issues。您使用的此PS工具不受官方支持,因此对于任何问题,您都需要在此处提交问题。我们将发布PS Cmdlet来创建存储过程,触发器和UDF,但目前没有要共享的ETA。