Ced*_*uld 3 azure-functions azure-cosmosdb
我有一个 Azure 函数,每次更新我的 CosmosDb 集合中的多个项目时都会触发该函数。
代码正常工作:
[StorageAccount("AzureWebJobsStorage")]
public static class ChangeFeedFunction
{
[FunctionName("ChangeFeedFunction")]
public static void ChangeFeedFunction(
[CosmosDBTrigger(
databaseName: "MyDataBase",
collectionName: "MyCollection",
ConnectionStringSetting = "CosmosDbConnectionString",
LeaseCollectionName = "MyCollection_Leases",
CreateLeaseCollectionIfNotExists = true
)] IReadOnlyList<Document> documents,
[Queue("collection-changes")] ICollector<Message> analystQueue,
ILogger logger
)
{
//Operations;
}
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,这意味着我有 2 个 CosmosDb 集合(MyCollection和MyCollection_Leases),每月最低 40 美元。我想降低成本。有没有办法在不使用其他 CosmosDb 集合的情况下观察我的 CosmosDb 集合上的修改?
谢谢
继cosmos db触发器函数文档之后,lease
收藏至今也无法回避,因为它承担着重要的责任。
lease
使用触发器存储每个函数的检查点时,我们需要一个集合。我说如果有10个文档被插入到cosmos db中,触发器函数被一个一个触发,检查点随着进程移动并存储到lease
集合中。突然,由于某些原因,触发器关闭。在此期间,又有 5 个文件插入到 db 中。触发函数重新启动后,它知道从哪个节点继续执行函数和lease
集合中的检查点。(我希望我已经说清楚了......)
顺便说一句,您可以lease
为所有收藏共享一个收藏,以获得更具成本效益的方法。请参考这篇文章。
至于成本,您可以创建最小配置lease
集合。门户上的成本是估计值。价格基于 RU 的消耗量。请参阅此文件。
归档时间: |
|
查看次数: |
2395 次 |
最近记录: |