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

标签 azure azure-functions azureservicebus

我正在尝试使用 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/

相关文章:

azure - 无法访问带有 scm 关键字的发布 URL,这导致 VS 部署失败

azure - 使用 ODATA 从 Application Insights REST API 获取最旧的记录

azure - Azure 上缺少电子邮件附件,可在本地使用

azure - Azure Functions v2 如何故意对消息设置死信

azure - QuotaExceededException : The remote server returned an error: (403) Forbidden. 由于命名空间 XXX 受到限制,请求被终止

azure - 如何与第三方共享 Azure Function 日志

c# - 在.NET Core内置DI容器中实现AddScoped服务的自定义处置

用于监听任何服务总线主题/订阅的azure函数

c# - 使用 Azure Functions 将多个代理消息输出到 Azure 服务总线主题

azure - 连接到 Azure ServiceBus 队列