作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我注意到,主题突然不再作为服务总线的一部分提供。是否可以将消息写入 Azure 函数内的事件网格主题?
最佳答案
以下代码片段是使用 azure 函数将遥测流推送到事件模型的示例:
#r "Microsoft.ServiceBus"
#r "Newtonsoft.Json"
using System.Configuration;
using System.Text;
using System.Threading.Tasks;
using Microsoft.ServiceBus.Messaging;
using Newtonsoft.Json;
// reusable client proxy
static HttpClient client = HttpClientHelper.Client(ConfigurationManager.AppSettings["TopicEndpointEventGrid"], ConfigurationManager.AppSettings["aeg-sas-key"]);
// AF
public static async Task Run(EventData ed, TraceWriter log)
{
log.Info($"C# Event Hub trigger function processed a message:{ed.SequenceNumber}");
//foreach(var prop in ed.SystemProperties)
// log.Info($"{prop.Key} = {prop.Value}");
// fire EventGrid Custom Topic
var egevent = new
{
Id = ed.SequenceNumber.ToString(),
Subject = $"/iothub/events/{ed.SystemProperties["iothub-message-source"] ?? "?"}/{ed.SystemProperties["iothub-connection-device-id"] ?? "?"}",
EventType = "telemetryDataInserted",
EventTime = ed.EnqueuedTimeUtc,
Data = new
{
sysproperties = ed.SystemProperties,
properties = ed.Properties,
body = JsonConvert.DeserializeObject(Encoding.UTF8.GetString(ed.GetBytes()))
}
};
await client.PostAsJsonAsync("", new[] { egevent });
}
// helper
class HttpClientHelper
{
public static HttpClient Client(string address, string key)
{
var client = new HttpClient() { BaseAddress = new Uri(address) };
client.DefaultRequestHeaders.Add("aeg-sas-key", key);
return client;
}
}
函数.json:
{
"bindings": [
{
"type": "eventHubTrigger",
"name": "ed",
"direction": "in",
"path": "myIoTHubName",
"connection": "connectionstringIOTHUB",
"consumerGroup": "eventing",
"cardinality": "many"
}
],
"disabled": false
}
请注意,AEG 自定义主题的负载取决于其inputSchema 属性。基本上,当前的 AEG 版本(还包括预览版)允许从以下选择中声明输入模式:
更多详情请参见:
关于azure - 如何在 Azure Function 中写入 Azure 事件网格主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52348802/
我是一名优秀的程序员,十分优秀!