Azure 函数和文档数据库

Azure Function & Document DB

我很好奇 Azure Functions 的缩放与输出到文档数据库的关系如何。

基本上当文档数据库 returns a 429 因为我超出了分配的吞吐量时会发生什么?我问是因为当我将最低级别的 Azure Functions 与最低级别的文档数据库结合使用并在 20 秒内继续调用该函数 1000 次时,我只看到 700-800 个实际文档插入到我的文档数据库集合中。当我再次以相同的最低功能级别将文档数据库扩展到最大时,我的文档数据库集合中只收到了 700-800 个文档。但是,当我将函数扩展到最大且文档数据库最大时,我得到了所有 1000。当我将文档数据库降低到最小值时,我只得到了 300ish ....虽然看起来我已经锁定了文档db 帐户,并且它仍在重试插入直到成功。

所以我只是对缩放感到困惑,如果我能获得一些见解,那么我可以更好地调整功能或应用程序的各个方面。

是的,它目前确实在 429 上重试,根据 DocDB 响应等待建议的时间。目前没有绝对超时,因此重试将一直持续到它们通过(我现在正在仔细检查这是否是预期的行为)。

在您的第一个场景中,如果您等待足够长的时间以移除节流阀,最终会显示所有 1000 个吗?

我想尝试复制这个 -- 在启用您的功能之前,您是否将 1000 个项目放入队列中?或者用其他方式称呼它?

运行 的具体重试代码在这里,如果你好奇的话:https://github.com/Azure/azure-webjobs-sdk-extensions/blob/master/src/WebJobs.Extensions.DocumentDB/DocumentDBUtility.cs#L36