如何重新使用Azure Cosmos UDF?

如何重新使用Azure Cosmos UDF?,azure,azure-cosmosdb,Azure,Azure Cosmosdb,我在多个Cosmos数据库的多个集合中使用用户定义的函数。是否有一种方法可以将其存储在某个位置,并同时将其部署到所有这些集合/数据库?还是一种同时更新它们的方法?目前,我必须检查并手动更新每个数据库中每个集合中的每个UDF。在Cosmos DB资源模型结构中,存储过程、UDF、合并过程、触发器和冲突都是容器级资源 您必须为每个容器创建它们。您可以编写控制台应用程序来更新UDF- private async Task<string> CreateUDFAsync(str

我在多个Cosmos数据库的多个集合中使用用户定义的函数。是否有一种方法可以将其存储在某个位置,并同时将其部署到所有这些集合/数据库?还是一种同时更新它们的方法?目前,我必须检查并手动更新每个数据库中每个集合中的每个UDF。

在Cosmos DB资源模型结构中,存储过程、UDF、合并过程、触发器和冲突都是容器级资源


您必须为每个容器创建它们。

您可以编写控制台应用程序来更新UDF-

        private async Task<string> CreateUDFAsync(string collectionUri, string udfName, string udfBody)
    {
        ResourceResponse<UserDefinedFunction> response = null;

        try
        {
            var existingUdf = await this.cosmosDbClient.ReadUserDefinedFunctionAsync($"{collectionUri}/udfs/{udfName}");

            existingUdf.Resource.Body = udfBody;

            response = await this.cosmosDbClient.ReplaceUserDefinedFunctionAsync(existingUdf.Resource);

        }
        catch (DocumentClientException ex)
        {
            response = await this.cosmosDbClient.CreateUserDefinedFunctionAsync(collectionUri,
               new UserDefinedFunction
               {
                   Id = udfName,
                   Body = udfBody
               });
        }

        return response.Resource.AltLink;
    }
它将替换现有的UDF,并在缺少的情况下创建新的UDF