DocumentDBAttribute 绑定如何响应限制?



我有使用 DocumentDBAttribute 绑定来读取和写入文档的 Azure 函数(C# v1 函数 - 非脚本(。 在以下情况下,这些绑定如何响应限制?

  • 通过将项目添加到 ICollector 来编写项目
  • 通过提供 ID 读取项目

这适用于函数 v1。

第一种情况:

//input binding
[DocumentDB(ResourceNames.APCosmosDBName, 
ResourceNames.EpisodeOfCareCollectionName,
ConnectionStringSetting = "APCosmosDB",
CreateIfNotExists = true)] ICollector<EOC> eoc,
//...
eoc.Add(new EOC()); //what happens here if throttling is occuring?

第二种情况:

[DocumentDB(ResourceNames.ORHCasesDBName, ResourceNames.ORHCasesCollectionName, ConnectionStringSetting = "ORHCosmosDBCases", CreateIfNotExists = true, Id = "{id}")] string closedCaseStr,

输入和输出绑定都使用 CosmosDB SDK,该 SDK 具有适当的重试机制。

默认情况下,SDK 对限制的结果重试 9 次,之后异常会冒泡,函数会出错。根据触发器类型,它将使HTTP调用失败,将消息放回队列等。

重试遵循 Cosmos DB 返回的计时建议:

当客户端发送请求的速度超过允许的速率时,服务将返回 HttpStatusCode 429(请求过多(以限制客户端的速率。然后,SDK 中的当前实现将等待服务告知它等待的时间量,并在时间过后重试。

目前,无法使用默认策略以外的策略配置绑定。

最新更新