我的出发点是一个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”设置,然后它就工作了。由于某种原因,它无法拾取我自己的连接字符串。
您应该使用服务总线输出绑定。既然您提到了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,但我没有看到服务总线输出的任何对应接口。