如何检查哪些服务正在写入 Azure Cosmos Db?

How to check what service is writing to Azure Cosmos Db?

我们使用 SQL API 在 Azure Cosmos 数据库中收集了大量数据。我们确信这个数据库不再被使用,但是我们刚刚发现该集合中的文档正在频繁更新,但我们不确定我们的许多服务中的哪一个正在写入它。

有没有一种简单的方法可以确定 writing/updating Azure 门户中集合中的文档是什么服务?我在 activity 日志中尝试了多种不同的过滤器组合,但找不到任何东西。

您可以转到您的 Azure Cosmos DB 面板,转到日志并尝试使用 AzureActivity

CosmosDB Activity Log

它将向您显示所有活动

因为 Cosmos DB 使用主密钥提供对数据的访问,所以无法查看谁在访问你的数据。您可以提供有关谁访问数据的详细信息的一种方法是通过限制可以访问主密钥的 RBAC 角色来锁定数据平面。 This article describes one way of doing that. Once that is locked down you can then Audit control plane logs 查看哪些客户端应用程序正在访问数据。

但是,要真正实现这一点,需要大量工作来重新设计客户端应用程序访问主密钥的方式,这样每个客户端应用程序都需要重新设计,从而抵消了这样做的好处。