0

我选择在企业多租户模型应用程序中利用 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。域主题是否仅在首次发布后才出现?

任何有关云事件模式格式和管理主题的见解都会很棒!

4

1 回答 1

0

所以我现在在 Azure 门户中看到了这个 UI。您只需在域上添加事件订阅,其中一个选项是按主题归档,您可以在其中添加主题。

https://docs.microsoft.com/bs-latn-ba/azure/event-grid/how-to-event-domains?tabs=azurecli#create-topics-and-subscriptions

这里很清楚“在域中创建主题没有单独的步骤。”。

其次,我能够为 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

于 2020-01-11T19:30:00.230 回答