【发布时间】:2020-07-12 17:21:50
【问题描述】:
我有以下要求,我想从 cosmosDB 捕获记录并将其推送到博客存储。
我已经使用 azure 函数 cosmos DB 触发器解决了上述问题(它将捕获对记录在 cosmos DB 容器中所做的任何更改)。
如何捕获满载?
要求我必须从 cosmos DB 容器中获取所有记录并将其推送到博客存储。
所以问题是 cosmosDB 触发器仅在记录发生变化时才捕获,所以我如何才能实现这种完全加载。
对于满载,我还创建了一个 python 脚本。
参考:https://github.com/Azure/azure-cosmos-python
参考脚本:How To Update Record in Cosmos Db using python?
query_data = client.QueryItems(collection_link,
'SELECT * FROM ' + COSMOS_DB_COLLECTION_ID,
{'enableCrossPartitionQuery': True})
for item in query_data:
client.ReplaceItem(item['_self'], item, options=None)
所以实际上我的脚本正在执行它的所有记录,我正在为每条记录调用 ReplaceItem,但我观察到的是 azure 函数 cosmos DB 触发器不会捕获所有记录的更改,它只捕获少数记录。
那么脚本有问题吗?
【问题讨论】:
-
你这里的要求不是很清楚。 cosmos db 触发器将触发对数据库中文档的任何更改。如果要将数据库的全部内容复制到 blob 存储中,则需要其他解决方案。
标签: azure-functions azure-cosmosdb cosmosdbtrigger