我尝试使用Event Hub将消息发送到Azure Stream Analytics . 在Azure上,我清楚地看到监视器上的事件活动,但在Stream Analytics Job上,我只是无法测试输入数据 .
我试图只测试一个文件,它的工作原理我的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%确定它缺少partitionkey,但我找不到正确传递它的方法 .
我从这个例子中得到了这个例子:https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-dotnet-standard-getstarted-send
在Event Hub活动下方:
这是输入细节:
尝试从输入上传样本数据时,我在Azure Stream Analytics Job上获得的消息:
这是从文件(json文件)上传数据时的结果:
有谁知道如何解决它?
PS . Json工作正常 .