Я пытаюсь отправить сообщения в Azure Stream Analytics с помощью концентратора событий.В Azure отчетливо видно активность событий на мониторе, но в задании Stream Analytics я просто не могу проверить входные данные.
Я попытался проверить только один файл, и он работает, мой файл jsonХорошо.Ниже кода C #, который я использую для отправки сообщений:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;
using System.IO;
using Newtonsoft.Json;
using Microsoft.Azure.EventHubs;
namespace contosorealtimeapplication
{
public class Program
{
private static Microsoft.Azure.EventHubs.EventHubClient eventHubClient;
private const string EventHubConnectionString = "Endpoint=sb://***************.servicebus.windows.net/;SharedAccessKeyName=***************;SharedAccessKey=***************";
private const string EventHubName = "contosorealtime";
public static void Main(string[] args)
{
MainAsync(args).GetAwaiter().GetResult();
}
private static async Task MainAsync(string[] args)
{
var connectionStringBuilder = new EventHubsConnectionStringBuilder(EventHubConnectionString)
{
EntityPath = EventHubName
};
eventHubClient = Microsoft.Azure.EventHubs.EventHubClient.CreateFromConnectionString(connectionStringBuilder.ToString());
await SendMessagesToEventHub();
await eventHubClient.CloseAsync();
Console.WriteLine("Press ENTER to exit.");
Console.ReadLine();
}
// Creates an event hub client and sends 100 messages to the event hub.
private static async Task SendMessagesToEventHub()
{
//get JSON file configured on app-setting
string localFolder = ConfigurationManager.AppSettings["sourcefolder"];
string[] fileEntries = Directory.GetFiles(localFolder);
string message = "";
string serialisedString = "";
foreach (string filePath in fileEntries)
{
try
{
serialisedString = JsonConvert.SerializeObject(filePath);
message = $"Message {serialisedString}";
Console.WriteLine($"Sending message: {message}");
await eventHubClient.SendAsync(new Microsoft.Azure.EventHubs.EventData(Encoding.UTF8.GetBytes(serialisedString)));
}
catch (Exception exception)
{
Console.WriteLine($"{DateTime.Now} > Exception: {exception.Message}");
}
}
}
}
}
Я на 100% уверен, что отсутствует ключ раздела, но я не смог найти способ передать его правильно.
Я получил этот пример из этого: https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-dotnet-standard-getstarted-send
Ниже действия концентратора событий:
Действия концентратора событий
Вот входные данные:
Конфигурация ввода:
Вот сообщение, которое я получаю в задании Azure Stream Analytics при попытке загрузить пример данных из ввода:
Сообщение об ошибке Azure
Вот результат, когда я загружаю данные из файла (файл json):
Данные результата из файла
Кто-нибудь знает, как ее решить?
PS.Json работает нормально.