无法为事件网格触发器启动逻辑应用运行

问题描述 投票:0回答:2

我正在按照 本教程 使用事件网格将消息从服务总线主题发送到电子邮件。

当我运行逻辑应用程序时,出现以下错误:

无法启动逻辑应用 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"))

azure azureservicebus azure-servicebus-topics azure-eventgrid
2个回答
0
投票

在我的本地环境中重现后,我可以在提到事件类型项后完成这项工作。以下是我的逻辑应用程序流程。

我使用以下代码发送消息

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")

结果:


0
投票

当 EventGrid 未在我的订阅上注册为资源提供者时,我收到此错误。

要查看它是否已注册,请转到您的订阅并在“资源提供商的设置”下查看。

查找 Microsoft.EventGrid 并确保其已注册。如果不是(如我的情况),则选择它并单击注册。完成后,它应该类似于下面的屏幕截图。

© www.soinside.com 2019 - 2024. All rights reserved.