现有的 Cosmos DB 文档需要使用新属性进行更改/更新,其他集合的现有文档也需要使用相同的新属性及其值进行更新。
是否有任何推荐的方法或工具可用于更新 Cosmos DB 上的现有文档,或者使用 Cosmos DB SDK 编写自定义 c# 应用程序/PowerShell 脚本是唯一的选择?
例子:
现有user文件
{
id:user1@mail.com,
name: "abc",
country: "xyz"
}
Run Code Online (Sandbox Code Playgroud)
更新user文档
{
id:user1@mail.com,
name: "abc",
country: "xyz",
guid:"4334fdfsfewr" //new field
}
Run Code Online (Sandbox Code Playgroud)
现有order文件user
{
id:user1@mail.com,
user: "user1@mail.com",
date: "09/28/2020",
amt: "$45"
}
Run Code Online (Sandbox Code Playgroud)
更新的order文件user
{
id:user1@mail.com,
user: "user1@mail.com",
userid: "4334fdfsfewr", // new field but with same value as in user model
date: "09/28/2020",
amt: "$45"
}
Run Code Online (Sandbox Code Playgroud) 尝试将3个不同类型的函数(CosmosDBTrigger/TimerTrigger/HttpTrigger)部署在同一个azure函数应用服务账户中,附上文件夹结构以供参考。
功能未按预期工作,但在成功部署后抛出错误。
函数 (CopyToQueue) 错误:Microsoft.Azure.WebJobs.Host:索引方法“CopyToQueue”时出错。Microsoft.Azure.WebJobs.Host:无法将参数“ inputCloudSyncJobModels ”绑定到类型 IEnumerable`1。确保绑定支持参数类型。如果您使用绑定扩展(例如 Azure Storage、ServiceBus、Timers 等),请确保您已在启动代码(例如 builder.AddAzureStorage()、builder.AddServiceBus() 中调用了扩展的注册方法)、builder.AddTimers() 等)。
public static async Task Run([**TimerTrigger**(scheduleExpression: "%TimerConfig%")]TimerInfo myTimer,
[CosmosDB(databaseName: "%DatabaseName%",
collectionName: "%InputCollection%",
SqlQuery ="%JobsSelectQuery%",
ConnectionStringSetting = "CosmosDBConnectionString")]
IEnumerable<object> **inputCloudSyncJobModels**,
[Queue(queueName: "%JobsQueueName%", Connection = "StorageConnectionString")] IAsyncCollector<string> outputCloudQueueModels,
Microsoft.Extensions.Logging.ILogger log, ExecutionContext context)
Run Code Online (Sandbox Code Playgroud)
如果我在不同的单独 azure 函数应用程序服务下部署相同的函数,则它们无需任何修改即可运行。
当这些功能部署在相同的 azure 功能应用服务下时,请建议如何使这些功能成为工作功能。
计划在 Azure 上根据消费定价模型配置基于“队列触发”的 Azure 功能。每次调用此函数时,可能会随机运行 1 分钟到 30 分钟之间的任何时间,甚至更长/更短,具体取决于情况。偶尔最大。运行时间可能约为 45 分钟,否则大部分是最大运行时间。运行时间可以在10分钟以内。
基于“队列触发”的 Azure 功能是否存在超时?如果是,最大值是多少?暂停?
是否有任何基于 Azure 功能相关的实践来克服超时限制?
(或者)
“耐用功能”可以被视为克服最大值的替代方案吗?超时时间限制?
(或者)
Azure 上还有其他更好的无服务器组件可供使用吗?
azure-functions azure-durable-functions azure-function-async
在 Azure 函数中,如果“SecretUri”中没有版本号,Key Vault 引用是否也能正常工作
@Microsoft.KeyVault(SecretUri=https://MYKEYVAULT.vault.azure.net/secrets/secretkey/)
Run Code Online (Sandbox Code Playgroud)
我需要连接到没有任何版本的 Key Vault 密钥,以便在轮换密钥时无需更新应用程序配置中的版本。
azure ×1