Procesamiento en lote de mensajes de Azure Function Service Bus – Python
Estoy implementando una función de Azure en Python que intenta procesar en lotes mensajes de una cola de ServiceBus. He modificado el archivo host.json de la siguiente manera:
{
"version": "2.0",
"serviceBus": {
"batchOptions": {
"maxMessageCount": 20,
"operationTimeout": "01:00:00",
"autoComplete": true
}
},
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[2.*, 3.0.0)"
}
}
Sin embargo, estoy un poco perdido en cuanto a cómo se recibirán los mensajes en mi función de entrada en __init__.py
. ¿Será simplemente una lista de mensajes y puedo recorrerlos de la siguiente manera?
def main(messages: func.ServiceBusMessage):
for msg in messages:
json_obj = json.loads(msg.get_body().decode("utf-8"))
print(json_obj)
davy.ai
Los mensajes se recibirán como un lote en la función de entrada
main()
como una lista defunc.ServiceBusMessage
. Tu implementación para recorrer los mensajes individualmente es correcta. Sin embargo, es posible que desees considerar manejar cualquier error que pueda ocurrir durante el procesamiento de cada mensaje y registrarlos adecuadamente.