【问题标题】:Azure Function Servicebus batch process messages - pythonAzure Function Servicebus 批处理消息 - python
【发布时间】:2022-01-25 04:00:46
【问题描述】:

我正在 python 中实现一个 azure 函数,它试图批处理来自服务总线队列的消息。我修改了host.json文件如下:

{
    "version": "2.0",
    "serviceBus": {
        "batchOptions": {
            "maxMessageCount": 20,
            "operationTimeout": "01:00:00",
            "autoComplete": true
        }
    },
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[2.*, 3.0.0)"
    }
}

但是,对于在__init__.py 的输入函数中如何接收消息,我有点迷茫。它只是一个消息列表,我可以按如下方式循环遍历消息:

def main(messages: func.ServiceBusMessage):
    for msg in messages:
        json_obj = json.loads(msg.get_body().decode("utf-8"))
        print(json_obj)

【问题讨论】:

  • 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。

标签: python azure-functions azureservicebus


【解决方案1】:

你的绑定配置不对,要在function.json中正确配置。在将您的 Azure 函数配置为服务总线触发器并正确绑定到队列后,对于生成的 每个 消息,您的函数将被调用一次。您的函数不会获取消息数组。请参阅示例代码here 以获取更多详细信息。

如果您需要函数应用处理一堆服务总线消息,而不是服务总线队列触发器,那么您需要连接到服务总线客户端然后接收消息,请参阅this 页面中的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-08
    • 1970-01-01
    • 2021-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    相关资源
    最近更新 更多