Mik*_*kov 5 azure azure-functions azure-eventgrid
我应该使用哪种触发器类型来运行 Azure 函数作为 Azure 事件网格主题的订阅?
与事件网格相关的任何地方都提到了此功能,但我没有看到任何教程或代码示例。
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Azure.WebJobs.Extensions.EventGrid;
using Newtonsoft.Json;
namespace FunctionApp3
{
public static class Function2
{
[FunctionName("Function2")]
public static void Run([EventGridTrigger()]EventGridEvent eventGridEvent, TraceWriter log)
{
log.Info($"EventGridEvent\n\tId:{eventGridEvent.Id}\n\tTopic:{eventGridEvent.Topic}\n\tSubject:{eventGridEvent.Subject}\n\tType:{eventGridEvent.EventType}\n\tData:{JsonConvert.SerializeObject(eventGridEvent.Data)}");
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用天蓝色门户:
运行.cs:
#r "Microsoft.Azure.WebJobs.Extensions.EventGrid"
#r "Newtonsoft.Json"
using Microsoft.Azure.WebJobs.Extensions.EventGrid;
using Newtonsoft.Json;
public static void Run(EventGridEvent eventGridEvent, TraceWriter log)
{
//log.Info(eventGridEvent.ToString());
var jsondata = JsonConvert.SerializeObject(eventGridEvent.Data);
var tmp = new { make = "", model = "", test = ""};
var data = JsonConvert.DeserializeAnonymousType(jsondata, tmp);
log.Info($"Data = make:{data.make}, model:{data.model}, test:{data.test}");
log.Info($"EventGridEvent\n\tId:{eventGridEvent.Id}\n\tTopic:{eventGridEvent.Topic}\n\tSubject:{eventGridEvent.Subject}\n\tType:{eventGridEvent.EventType}\n\tData:{jsondata}");
}
Run Code Online (Sandbox Code Playgroud)
函数.json:
{
"bindings": [
{
"type": "eventGridTrigger",
"name": "eventGridEvent",
"direction": "in"
}
],
"disabled": false
}
Run Code Online (Sandbox Code Playgroud)
测试样品:
{
"Topic": null,
"Subject": "/myapp/vehicles/motorcycles",
"Id": "b68529f3-68cd-4744-baa4-3c0498ec19e2",
"EventType": "recordInserted",
"EventTime": "2017-06-26T18:41:00.9584103Z",
"Data":{
"make": "Ducati",
"model": "Monster",
"test":"-----------"
}
}
Run Code Online (Sandbox Code Playgroud)
最后一步是在集成页面中创建事件网格订阅 URL:
| 归档时间: |
|
| 查看次数: |
3017 次 |
| 最近记录: |