我想使用服务总线作为webhook
根据https://docs.microsoft.com/en-us/rest/api/servicebus/send-message-batch我可以使用post请求访问该服务但我需要添加一个身份验证,这对于我正在使用的webhook是不可能的
我以为我可以使用azure函数添加一个中间层,所以基本上azure函数是webhook并且它将消息转发到服务总线但是我不能在azure函数中包含Microsoft.Azure.ServiceBus所以我不能这样做同样
有没有一种简单的方法可以将消息转发到服务总线?
添加AndrésNava - .NET
如果您没有使用预编译的azure函数并且想要引用外部程序集,则可以使用#r“AssemblyName”。我们可以从Azure Functions C# script developer reference.获得更多信息
以下程序集可以通过简单名称引用(例如,#r“AssemblyName”):1
- Newtonsoft.Json
- Microsoft.Windows azure.storage
- Microsoft.ServiceBus
- Microsoft.AspNet.WebHooks.Receivers
- Microsoft.AspNet.WebHooks.Common
- Microsoft.Azure.NotificationHubs
看一下HTTP触发函数(您的webhook)的示例,然后写入服务总线。快速说明:在他们的示例中,他们将函数的返回值作为消息写入服务总线,您可能希望使用输出绑定:
https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-service-bus#output
[FunctionName("ServiceBusOutput")]
[return: ServiceBus("myqueue", Connection = "ServiceBusConnection")]
public static string ServiceBusOutput([HttpTrigger] dynamic input, TraceWriter log)
{
log.Info($"C# function processed: {input.Text}");
return input.Text;
}