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