Хранение полученного сообщения на лазурном - PullRequest
0 голосов
/ 13 июня 2018

У меня есть простой отправитель сообщений в C #

public static async Task SendMessageToTopic(string serviceBusConnectionString, string topic, string message)
{
    const int numberOfMessages = 10;
    topicClient = new TopicClient(serviceBusConnectionString, topic);

    Console.WriteLine("======================================================");
    Console.WriteLine("Press ENTER key to exit after sending all the messages.");
    Console.WriteLine("======================================================");

    // Send messages.
    await SendMessagesAsync(message);

}

static async Task SendMessagesAsync(string message)
{
    try
    {
            var encodedMessage = new Message(Encoding.UTF8.GetBytes(message));

            // Write the body of the message to the console.
            Console.WriteLine($"Sending message: {encodedMessage}");

            // Send the message to the topic.
            await topicClient.SendAsync(encodedMessage);

    }
    catch (Exception exception)
    {
        Console.WriteLine($"{DateTime.Now} :: Exception: {exception.Message}");
    }
}

На другом конце у меня есть простое приложение-получатель, и все работает хорошо.Теперь я хочу сохранить свои сообщения (скажем, целые числа) в хранилище Azure, чтобы отобразить их позже.Я настроил конечные точки и маршруты, как описано здесь https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-store-data-in-azure-table-storage#verify-your-message-in-your-storage-container Но похоже, что мой контейнер пуст (я использую Azure Storage Explorer, чтобы увидеть его)

1 Ответ

0 голосов
/ 14 июня 2018

Я думаю, что нужно кое-что прояснить.Служебную шину можно использовать в качестве одной из дополнительных конечных точек для центра 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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...