Я думаю, что нужно кое-что прояснить.Служебную шину можно использовать в качестве одной из дополнительных конечных точек для центра IoT Azure.В настоящее время IoT Hub поддерживает контейнеры хранилища Azure, концентраторы событий, очереди служебной шины и разделы служебной шины в качестве дополнительных конечных точек. Концентратору IoT необходим доступ на запись или настройка (через портал Azure) этих конечных точек службы для работы маршрутизации сообщений.Подробнее о том, как понять конечные точки IoT-концентратора и , необходимо настроить маршрутизацию сообщений с помощью Azure IoT Hub .Конечная точка, которую вы настроили, предназначена для концентратора IoT, а не для служебной шины.
Сама служебная шина не поддерживает маршрутизацию полученного сообщения в контейнер хранения или другие конечные точки.Если вы хотите сохранить полученное сообщение служебной шины, вы можете использовать привязки служебной шины Azure для функций Azure . Функции Azure поддерживают привязки триггера и выхода для очередей и разделов служебной шины.В этом блоге показано, как динамически маршрутизировать очередь во время выполнения с привязками функций Azure.
C # для примера триггера темы служебной шины (run.csx):
#r "Microsoft.WindowsAzure.Storage"
using System;
using System.Configuration;
using System.Net;
using System.Text;
using Microsoft.Azure;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Blob;
public static async Task Run(string mySbMsg, TraceWriter log)
{
log.Info($"C# ServiceBus topic trigger function processed message: {mySbMsg}");
string connectionString="{storage acount connectionString}";
CloudStorageAccount storageAccount;
CloudBlobClient client;
CloudBlobContainer container;
CloudBlockBlob blob;
storageAccount = CloudStorageAccount.Parse(connectionString);
client = storageAccount.CreateCloudBlobClient();
container = client.GetContainerReference("container01");
await container.CreateIfNotExistsAsync();
blob = container.GetBlockBlobReference(DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".json");
blob.Properties.ContentType = "application/json";
using (Stream stream = new MemoryStream(Encoding.UTF8.GetBytes(mySbMsg)))
{
await blob.UploadFromStreamAsync(stream);
}
}