我正在尝试使用 Azure 函数,并尝试设置复杂的管道和过滤器结构(模式)。我为此使用 Azure 函数。
我的起点是 HTTP 触发的 Azure 函数。它会从请求正文中收集一些 JSON,并应将此消息传递到 Azure 服务总线。
我一定在这里遗漏了一些东西(我之前已经在 RabbitMQ 中使用控制台应用程序完成了此操作),但是如何从 HTTP 触发的 Azure 函数将消息发布到服务总线。
我发现了一些关于配置我的 function.json 的引用资料(无论那是什么 - 我是在 Visual Studio 中构建的)。
这个输入/输出(触发/绑定(bind))是如何工作的 - 我猜这就是问题所在......或者??
我的第一个 Azure 函数已就位,并且正在从 HTTP 接收数据 - 到目前为止一切顺利。但如何进行呢?
** 更新 ** 仍然无法让它工作。得到这个代码,但失败并显示 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 ** 这似乎是一个配置问题。在功能应用程序的应用程序设置中,我不断收到服务总线的授权错误。我使用连接字符串添加了默认的“AzureWebJobsServiceBus”设置,然后它就起作用了。由于某种原因,它无法获取我自己的连接字符串。
最佳答案
您应该使用服务总线输出绑定(bind)。既然你提到了 Visual Studio,我假设是 C#。最简单的例子如下所示:
[FunctionName("ServiceBusOutput")]
[return: ServiceBus("myqueue", Connection = "ServiceBusConnection")]
public static string ServiceBusOutput([HttpTrigger] dynamic input)
{
return input.Text;
}
然后将名为 ServiceBusConnection
的应用程序设置以及连接字符串添加到具有队列 myqueue
的命名空间(或在属性构造函数中重命名)。
您可以在 Azure Service Bus bindings for Azure Functions - Output 中找到更多信息.
关于azure - 如何从我的 Azure 函数向 Azure 服务总线发布消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50846268/