我正在按照 本教程 使用事件网格将消息从服务总线主题发送到电子邮件。
当我运行逻辑应用程序时,出现以下错误:
无法启动逻辑应用 test-servicebusq 的运行。模板语言表达式求值失败:“模板触发器‘When_a_resource_event_occurrs’的执行失败:‘splitOn’表达式‘@triggerBody()’的求值结果为‘Null’类型。结果必须是有效的数组。'
当我向服务总线发送消息时,逻辑应用根本不会被触发。
我已经关闭了“splitOn”,当我手动运行逻辑应用程序时,触发器被触发并执行逻辑应用程序,但是当我向服务总线主题发送消息时,触发器不会自动触发(除非我手动运行逻辑应用程序)。
我希望当新消息到达服务总线时自动触发逻辑应用。
我是不是做错了什么?我按照教程一步步操作,但仍然无法找出问题所在。我需要在某处创建事件网格资源吗? (教程中没有提到)
编辑:我使用以下代码发送消息
from azure.servicebus import ServiceBusClient, ServiceBusMessage
connstr = <connection string>
topic_name = "fileincomplete"
with ServiceBusClient.from_connection_string(connstr) as client:
with client.get_topic_sender(topic_name) as sender:
sender.send_messages(ServiceBusMessage("Data12"))
在我的本地环境中重现后,我可以在提到事件类型项后完成这项工作。以下是我的逻辑应用程序流程。
我使用以下代码发送消息
from azure.servicebus import ServiceBusClient, ServiceBusMessage
CONNECTION_STR = "<YOUR_NAMESPACE_CONNECTION_STRING>"
TOPIC_NAME = "<YOUR_TOPIC_NAME>"
servicebus_client = ServiceBusClient.from_connection_string(conn_str=CONNECTION_STR, logging_enable=True)
with servicebus_client:
sender = servicebus_client.get_topic_sender(topic_name=TOPIC_NAME)
with sender:
message = ServiceBusMessage("Data12")
sender.send_messages(message)
print("Sent a single message")
结果: