将 Azure 表存储的重试策略与 Azure Functions 结合使用

Posted

技术标签:

【中文标题】将 Azure 表存储的重试策略与 Azure Functions 结合使用【英文标题】:Using Azure Table Storage's retry policy with Azure Functions 【发布时间】:2017-10-07 07:13:07 【问题描述】:

我正在尝试使用 Azure Functions 组合一个 API,并将其数据存储在表存储中。我已经完成了所有这些工作,但我想实施 Azure 存储客户端提供的重试策略。

有谁知道这是在“幕后”实现的,还是我需要添加一些代码到将CloudTable 传递给函数的绑定中。

感谢您的帮助。

【问题讨论】:

您能告诉我您现在使用的是哪个 azure 函数触发器吗? Http还是别的什么?如果你使用 rest api 向表存储发送请求,你可以使用 try catch 来捕获错误。 我正在使用 Http 触发器。当我读到它的内置机制时,我正在考虑将 Polly 与 try catch 一起使用。 【参考方案1】:

据我所知,所有针对 Windows Azure 存储的操作都是基于 REST 的 HTTP 操作,所有请求(成功或失败)都返回 HTTP 状态代码。

因此,如果请求失败,重试策略代码块会拦截异常并检查 HTTP 状态代码(以及存储服务返回的错误代码),并据此确定是否应重试请求。

所以如果你想在azure函数中实现重试策略,你可以使用try catch来捕获HTTP状态码并编写自己的逻辑进行重试。

【讨论】:

【参考方案2】:

我会按照你的建议和波莉一起去。这很棒。请在此处查看我对类似查询的回答:Read retry on Azure Table,这应该让您对实现有一个好主意。

【讨论】:

以上是关于将 Azure 表存储的重试策略与 Azure Functions 结合使用的主要内容,如果未能解决你的问题,请参考以下文章

Azure 服务总线可以在重试消息之前延迟吗?

使用 python 将 csv 文件上传到 azure blob 存储

Azure 服务总线:通过具有内置重试策略的消息泵接收到的瞬时错误(异常)。为啥?

从 APIM 策略获取 Azure 表存储实体

Azure 存储队列 - 重试机制实现

如何将 Azure 存储帐户内容(表、队列、blob)复制到其他存储帐户