从 Azure 函数向 Azure 服务总线队列写入消息

Gee*_*ekn 2 azureservicebus azure-functions

我正在尝试从 azure 函数向 azure 消息队列添加消息。为此,我正在关注这篇文章,其中我添加了对 Microsoft.Azure.ServiceBus 的引用。

https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-dotnet-get-started-with-queues

尝试添加此引用时,Visual Studio 2017 中的 Azure 函数项目会抱怨 Newtonsoft.Json (=9.0.1) 相对于 Microsoft.NET.Sdk.Functions 引用的受限版本。

检测到 Newtonsoft.Json 的版本冲突。将 Newtonsoft.Json 10.0.1 直接安装/引用到项目 IHA.Functions 以解决此问题。IHA.Functions -> Microsoft.Azure.ServiceBus 3.1.0 -> System.IdentityModel.Tokens.Jwt 5.2.2 -> Newtonsoft.Json (>= 10.0.1)
IHA.Functions -> Microsoft.NET.Sdk.Functions 1.0 .14 -> Newtonsoft.Json (= 9.0.1)。IHA.Functions C:\TFS\IHA\Misc\IHA.CSL\IH​​A.Functions\IHA.Functions.csproj 1

据我了解,Microsoft.Azure.ServiceBus 需要 Newtonsoft.Json 10.0.1。如果我删除9.0版本并添加10.0版本,我可以成功添加Microsoft.Azure.ServiceBus包,但是Azure Functions项目抱怨Microsoft.NET.Sdk.Functions需要9.0的Newtonsoft。

基于这些理解,我似乎无法从 Azure 函数写入 Azure 消息队列。这是正确的还是我做错了什么?

Mik*_*kov 6

Azure Functions 以扩展的形式明确支持服务总线。

您需要安装扩展,请参阅Azure Functions 的 Azure 服务总线绑定。请注意您使用的是哪个 Function App 版本:1.x with full .NET Framework,或 beta 2.x with .NET Standard,并遵循相应的指导。

然后,您将定义并写入输出绑定,而不是直接使用 Service Bus SDK 。