您可以对 Azure 函数或存储队列的输出进行速率限制吗?

Can you rate limit an Azure Function or output of a Storage Queue?

我触发了一个存储队列 Python Azure 函数,该函数将作业提交给第三方限速 API (1 request/minute)。触发该功能的队列会定期接收突发消息,因此我需要一种方法来确保该功能在收到第一条消息后立即触发,第二条消息 1 分钟后,第三条消息 2 分钟后,等等,直到队列为空。

是否可以对队列或函数进行速率限制,所以我每分钟只运行函数一次,直到队列为空?

无法对存储队列进行速率限制(除了队列自然受到存储事务速率限制的速率限制,存储事务速率限制比您当前所需的速率限制大几个数量级)。

您可以为 Azure 函数设置计时器触发器,而不是在队列消息到达时触发 Azure 函数。这将允许您在计时器上设置 1 分钟的间隔,您的函数可以在其中读取消息并调用 3rd-party API.

您需要指定一个计时器值,它是一个 NCRONTAB 表达式,格式如下:

{second} {minute} {hour} {day} {month} {day-of-week}

每 1 分钟的表达式如下所示:

"0 */1 * * * *"

有关计时器触发器的更多信息 here

看看 NextVisibleTime 属性:

CloudQueueMessage.NextVisibleTime