我选择在企业多租户模型应用程序中利用Azure事件网格。我也想使用Cloud Events而不是专有的AEG格式。我为每个租户都使用AEG域,然后我想为消息定义一个自定义主题。云事件v0.1具有用于云事件主题和主题的“#”定界属性。看起来V1.0不再了吗?在Azure文档中确实不清楚。
其次,使用Azure事件网格域似乎只能通过Powershell(https://docs.microsoft.com/en-us/cli/azure/eventgrid/domain/topic?view=azure-cli-latest)创建域主题,而不能在门户中创建域主题。我找不到其他方法为事件域创建主题的明确方法。
我的主题当前设置为:/providers/Microsoft.EventGrid/domains/{tenantname}/topics/refresh。 域主题是否在首次发布后才出现?
任何对云事件模式的格式和主题管理的见解都是很棒的!
答案 0 :(得分:0)
因此,我现在在Azure门户中看到此用户界面。您只需在域上添加事件订阅,选项之一就是按主题提交,然后在其中添加主题。
很明显,“没有单独的步骤可以在域中创建主题。”
第二,我能够为Cloud Events v1.0设置source = topic,也可以将主题分开。这是我的CloudEvent通用类:
public class CloudEvent<T> where T : class
{
[JsonProperty("id")]
public string EventId
{
protected set { }
get => Guid.NewGuid().ToString();
}
[JsonProperty("specversion")]
public string CloudEventVersion
{
protected set { }
get => "1.0";
}
[JsonProperty("type")]
public string EventType { get; set; }
[JsonProperty("eventTypeVersion")]
public string EventTypeVersion
{
protected set { }
get => "1.0";
}
[JsonProperty("source")]
public string Source { get; set; }
[JsonProperty("subject")]
public string Subject { get; set; }
[JsonProperty("time")]
public string Time
{
protected set { }
get => DateTime.UtcNow.ToString(CultureInfo.InvariantCulture);
}
[JsonProperty("data")]
public T Data { get; set; }
}
我的主题(设置为云事件的源属性)是
/ resourceGroups / {rgname} /providers/Microsoft.EventGrid/domains/ {domainname} / topics / {topic}
我认为这也会根据此模式正确设置主题。
https://docs.microsoft.com/en-us/azure/event-grid/cloudevents-schema