我有一个非常令人沮丧的问题
[FunctionName("MyFunction")]
public async Task MyFunctionAsync(
[ServiceBusTrigger("%AzureTopicName%", "mysubscription", Connection = "event-bus-connection")] Message message)
{
//My logic here
}
这永远不会被击中
我已检查并验证所有配置,没有问题
消息正在写入服务总线,如果存在配置问题,则不会发生这种情况
但是,即使消息在订阅中,我的触发器也永远不会被触发
有人见过这个吗?
这是本地执行而不是Azure
保罗
我已按照以下步骤操作并能够触发服务总线主题触发的 Azure 功能。
创建了服务总线主题触发器 Azure Function。
创建了服务总线、主题以及主题内的订阅。
代码片段:
[FunctionName("Function1")]
public void Run([ServiceBusTrigger("mytopic", "mysubscription", Connection = "demo")]string mySbMsg, ILogger log)
{
log.LogInformation($"C# ServiceBus topic trigger function processed message: {mySbMsg}");
}
local.settings.json:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"demo": "Endpoint=sb://<ServiceBus_name>.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=GRWoe2XXXXXXXXXXXXXXbEd8Ing="
}
}
控制台输出:
Functions:
Function1: serviceBusTrigger
For detailed output, run func with --verbose flag.
[2024-03-31T10:41:54.990Z] Host lock lease acquired by instance ID '000000000000000000000000F72731CC'.
[2024-03-31T10:42:15.389Z] Executing 'Function1' (Reason='(null)', Id=b57524a6-4fb8-4586-9bfb-c88e23d137bb)
[2024-03-31T10:42:15.394Z] Trigger Details: MessageId: 129a51488e34478db8ff88c43308da8b, SequenceNumber: 1, DeliveryCount: 1, EnqueuedTimeUtc: 2024-03-31T10:42:12.1620000+00:00, LockedUntilUtc: 2024-03-31T10:43:12.2400000+00:00, SessionId: (null)
[2024-03-31T10:42:15.433Z] C# ServiceBus topic trigger function processed message: Hello
[2024-03-31T10:42:15.490Z] Executed 'Function1' (Succeeded, Id=b57524a6-4fb8-4586-9bfb-c88e23d137bb, Duration=205ms)