我们使用了一些azure函数和azure存储队列在它们之间进行通信。我们知道每个队列消息的限制为64kB,因此我们必须使用消息压缩,但有时会超过该限制。根据文档https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-azure-and-service-bus-queues-compared-contrasted#capacity-and-quotas
Azure通过将队列和Blob结合在一起来支持大型消息-此时,您可以为单个项目排队最多200 GB。
看起来我们可以将大消息放入存储队列中。不幸的是,没有关于此的其他文档。所以我们的问题是它应该如何工作?它应该开箱即用,或者我们应该使用某种模式,例如将消息写入blob,将具有blob id的消息放入队列中,然后在某些由队列触发的函数中按id读取blob?
我们使用Microsoft.Azure.Storage.Queue v9.4.2 nuget包将消息推送到队列中。
答案 0 :(得分:0)
Azure队列需要CloudStorageAccount来支持它。根据文档,CloudStorageAccount可以是Azure Blob存储。
/* Include these "using" directives...
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Blob;
*/
string storageConnectionString = "DefaultEndpointsProtocol=https;"
+ "AccountName=[Storage Account Name]"
+ ";AccountKey=[Storage Account Key]"
+ ";EndpointSuffix=core.windows.net";
CloudStorageAccount account = CloudStorageAccount.Parse(storageConnectionString);
// Create the queue client.
CloudQueueClient queueClient = account.CreateCloudQueueClient();
我使用以下参考文献将其拼凑在一起:
https://docs.microsoft.com/en-us/azure/storage/queues/storage-dotnet-how-to-use-queues
https://docs.microsoft.com/en-us/dotnet/api/overview/azure/storage