我已选择在企业多租户模型应用程序中利用 Azure 事件网格。我还想使用云事件而不是专有的 AEG 格式。我正在为每个租户使用 AEG 域,然后我想为我的消息自定义主题和主题。云事件的 v0.1 具有云事件主题和主题的"#"分隔属性。看起来V1.0不再了吗?在 Azure 文档中确实不清楚。
其次,使用 Azure 事件网格域时,似乎只能通过 Powershell (https://learn.microsoft.com/en-us/cli/azure/eventgrid/domain/topic?view=azure-cli-latest( 创建域主题,而不能在门户中创建域主题。我找不到以任何其他方式为事件域创建主题的明确方法。
我的主题当前设置为:/providers/Microsoft.EventGrid/domain/{tenantname}/topics/refresh。 域主题是否仅在首次发布后出现?
有关云事件架构格式和管理主题的任何见解都将很棒!
所以我现在在 Azure 门户中看到了这一点的 UI。您只需在域上添加事件订阅,其中一个选项是按主题提交文件,您可以在其中添加主题。
https://learn.microsoft.com/bs-latn-ba/azure/event-grid/how-to-event-domains?tabs=azurecli#create-topics-and-subscriptions
这里很明显,"在域中创建主题没有单独的步骤。
其次,我能够为云事件 v1.0 设置源 = 主题并分离出主题。这是我的云事件泛型类:
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://learn.microsoft.com/en-us/azure/event-grid/cloudevents-schema