首页 > 解决方案 > Azure Function Python - serviceBusTrigger - 如何死信消息

问题描述

我有一个简单的 Python 函数,如果它不匹配少数约束,它应该死信一条消息。实际上我提出了一个异常并且一切正常(我的意思是消息是死信的),但我想了解是否有一种“干净”的方式来死信消息而不引发异常。

async def function_handler(message: func.ServiceBusMessage, starter: str):
    for msg in [message]:
        client = df.DurableOrchestrationClient(starter)
        message_body = msg.get_body().decode("utf-8")

        msg = json.loads(message_body)

        if 'valid' in msg:    
           instance_id = await client.start_new('orchestrator', None, json.dumps(message_body))
        else:
           raise Exception(f'not found valid {msg["id"]}')

这是 的一部分host.json,这应该表明我正在使用 2.0 版的 Azure Functions

  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle",
    "version": "[2.*, 3.0.0)"
  },

欢迎提出建议

标签: pythonazure-functionsazureservicebus

解决方案


在撰写本文时,在 Python 中不可能以交互方式以死信方式发送消息。

我发现autocomplete=false 仅支持 C#

这基本上意味着死信消息的唯一方法是引发异常,就像我在代码中所做的那样。

感谢@GauravMantri 为我指出正确的方法(即看看如何使用自动完成配置参数)。


推荐阅读