当前位置: 首页 > 知识库问答 >
问题:

我如何从我的Azure函数向Azure服务总线发布消息?

景国兴
2023-03-14

我的出发点是一个HTTP触发的Azure函数。它从请求正文中收集一些JSON,并将该消息传递给Azure服务总线。

我在这里一定遗漏了一些东西(我以前在RabbitMQ中使用过控制台应用程序),但是我如何从HTTP触发的Azure函数向服务总线发布消息。

我找到了几个关于配置function.json的参考资料(在Visual Studio中就是-im构建)。

**更新**仍然无法使其工作。得到了这段代码,但它以HTTP500失败。(它还说我需要查看OG-日志在哪里?)

public static class EI_WooCommerce_Hub
    {
        [FunctionName("EI_WooCommerce_Hub")]
        [return: ServiceBus("eilogging", Connection = "EIIntegrationServiceBusConnection")]
        public async static Task<string> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "EIWooCommerceHub/name/")]HttpRequestMessage req, TraceWriter log)
        {
            log.Info("Webhook triggered from: ");            
            return "Hello World to queue";
        }       
    }

**更新2**这似乎是配置问题。在function app上的应用程序设置中,我一直收到ServiceBus的授权错误。我用connectionstring添加了默认的“AzureWebJobsServiceBus”设置,然后它就工作了。由于某种原因,它无法拾取我自己的连接字符串。

共有1个答案

洪黎昕
2023-03-14

您应该使用服务总线输出绑定。既然您提到了Visual Studio,那么我假设C#。最简单的示例如下所示:

[FunctionName("ServiceBusOutput")]
[return: ServiceBus("myqueue", Connection = "ServiceBusConnection")]
public static string ServiceBusOutput([HttpTrigger] dynamic input)
{
    return input.Text;
}

然后使用连接字符串将名为ServiceBusConnection的应用程序设置添加到具有队列MyQueue的命名空间(或在属性构造函数中重命名)。

您可以在Azure函数的Azure服务总线绑定-Output中找到更多信息。

 类似资料:
  • 我写了C#程序,发送消息到Azure服务总线队列,这是正常工作。现在,我需要通过Azure函数将服务总线队列中收到的消息传递到数据湖,但据我所知,Azure函数不支持数据湖的绑定/触发器。是否有任何方法触发到Azure Data Lake的服务总线队列消息?提前感谢。

  • 我试图按照文档从Azure函数(https://docs.microsoft.com/en-us/Azure/azure-functions/functions-bindings-service-bus-output?tabs=csharp)向Azure服务总线队列写入消息。 我从HTTP触发器的“file->new project”开始,并添加了绑定: 我的host.json和local.set

  • 在.NET core 2.0中使用创建时,我遇到了一个问题。 在体系结构中,当在用于创建用户的队列中创建新消息时,服务必须接收该消息并根据其中的信息在数据库中创建用户。 在Visual Studio2017中,我在下创建了一个新项目。 这种的正确实现是什么?在GitHub上有什么例子吗?提前道谢。

  • 我目前正在评估使用一个服务总线和azure函数来触发一些需要通过下游api调用来完成的工作。这都是相当标准的,只是我没有很好地处理当下游系统过载和/或返回header到trottle时会发生什么(即每分钟最大调用数/等)。对于队列触发器的强制节流,我们似乎没有任何动态控制。 我知道我们可以手动设置最大并发,但这并不一定解决问题,因为我们无法控制下游系统,需要考虑它随时可能脱机或变慢。 假设消费计划

  • 我正在尝试使用服务总线绑定输出为JavaScript Azure函数中的服务总线消息设置元数据。不幸的是,绑定似乎只支持主体。 查看文档,我发现您可以通过上下文访问service bus触发器中的此信息。bindingData,但我没有看到服务总线输出的任何对应接口。