Verwalten von Themen und Veröffentlichen von Ereignissen mithilfe von Ereignisdomänen
In diesem Artikel werden die folgenden Aufgaben erläutert:
- Erstellen einer Event Grid-Domäne
- Abonnieren von Event Grid-Themen
- Auflisten von Schlüsseln
- Veröffentlichen von Ereignissen in einer Domäne
Weitere Informationen zu Ereignisdomänen finden Sie unter Grundlegendes zu Ereignisdomänen für die Verwaltung von Event Grid-Themen.
Erstellen einer Ereignisdomäne
Erstellen Sie zum Verwalten großer Themenmengen eine Ereignisdomäne.
az eventgrid domain create \
-g <my-resource-group> \
--name <my-domain-name> \
-l <location>
Bei einer erfolgreichen Erstellung werden die folgenden Werte zurückgegeben:
{
"endpoint": "https://<my-domain-name>.westus2-1.eventgrid.azure.net/api/events",
"id": "/subscriptions/<sub-id>/resourceGroups/<my-resource-group>/providers/Microsoft.EventGrid/domains/<my-domain-name>",
"inputSchema": "EventGridSchema",
"inputSchemaMapping": null,
"location": "westus2",
"name": "<my-domain-name>",
"provisioningState": "Succeeded",
"resourceGroup": "<my-resource-group>",
"tags": null,
"type": "Microsoft.EventGrid/domains"
}
Beachten Sie die Objekte endpoint
und id
, da diese zum Verwalten der Domäne und zum Veröffentlichen von Ereignissen erforderlich sind.
Verwalten des Zugriffs auf Themen
Das Verwalten des Zugriffs auf Themen erfolgt über eine Rollenzuweisung. Die Rollenzuweisung verwendet die rollenbasierte Zugriffssteuerung in Azure (Azure RBAC), um die Vorgänge mit Azure-Ressourcen auf autorisierte Benutzer in einem bestimmten Bereich zu beschränken.
Event Grid verfügt über zwei integrierte Rollen, mit denen Sie bestimmten Benutzern Zugriff auf verschiedene Themen innerhalb einer Domäne zuweisen können. Diese Rollen sind EventGrid EventSubscription Contributor (Preview)
(ermöglicht das Erstellen und Löschen von Abonnements) und EventGrid EventSubscription Reader (Preview)
(ermöglicht nur das Auflisten von Ereignisabonnements).
Mit dem folgenden Azure CLI-Befehl wird alice@contoso.com
auf das Erstellen und Löschen von Ereignisabonnements ausschließlich für das Thema demotopic1
beschränkt:
az role assignment create \
--assignee alice@contoso.com \
--role "EventGrid EventSubscription Contributor (Preview)" \
--scope /subscriptions/<sub-id>/resourceGroups/<my-resource-group>/providers/Microsoft.EventGrid/domains/<my-domain-name>/topics/demotopic1
Weitere Informationen zum Verwalten des Zugriffs für Event Grid-Vorgänge finden Sie unter Event Grid – Sicherheit und Authentifizierung.
Erstellen von Themen und Abonnements
Der Event Grid-Dienst erstellt und verwaltet das entsprechende Thema automatisch in einer Domäne basierend auf dem Aufruf zum Erstellen eines Ereignisabonnements für ein Domänenthema. Es gibt keinen separaten Schritt zum Erstellen eines Themas in einer Domäne. Wenn das letzte Ereignisabonnement für ein Thema gelöscht wird, wird analog dazu das Thema ebenfalls gelöscht.
Das Abonnieren eines Themas in einer Domäne ist identisch mit dem Abonnieren beliebiger anderer Azure-Ressourcen. Geben Sie als Quellressourcen-ID die Ereignisdomänen-ID an, die zuvor beim Erstellen der Domäne zurückgegeben wurde. Um das Thema anzugeben, das Sie abonnieren möchten, fügen Sie /topics/<my-topic>
am Ende der Quellressourcen-ID hinzu. Um ein Domänenbereichereignis-Abonnement zu erstellen, das alle Ereignisse in der Domäne empfängt, geben Sie die Ereignisdomänen-ID ohne jegliche Themen an.
Normalerweise erstellt der Benutzer, dem Sie im vorherigen Abschnitt Zugriff gewährt haben, das Abonnement. Der Einfachheit halber erstellen Sie das Abonnement für diesen Artikel hier selbst.
az eventgrid event-subscription create \
--name <event-subscription> \
--source-resource-id "/subscriptions/<sub-id>/resourceGroups/<my-resource-group>/providers/Microsoft.EventGrid/domains/<my-domain-name>/topics/demotopic1" \
--endpoint https://contoso.azurewebsites.net/api/updates
Wenn Sie einen Testendpunkt benötigen, um Ihre Ereignisse zu abonnieren, können Sie jederzeit eine vordefinierte Web-App bereitstellen, die die eingehenden Ereignisse anzeigt. Sie können die Ereignisse an Ihre Testwebsite unter https://<your-site-name>.azurewebsites.net/api/updates
senden.
Berechtigungen, die für ein Thema festgelegt sind, werden in Microsoft Entra ID gespeichert und müssen explizit gelöscht werden. Das Löschen eines Ereignisabonnements widerruft nicht den Zugriff von Benutzer*innen zum Erstellen von Ereignisabonnements, wenn sie Schreibzugriff für ein Thema besitzen.
Veröffentlichen von Ereignissen in einer Event Grid-Domäne
Das Veröffentlichen von Ereignissen für eine Domäne ist identisch mit dem Veröffentlichen für ein benutzerdefiniertes Thema. Allerdings veröffentlichen Sie nicht für ein benutzerdefiniertes Thema, sondern Sie veröffentlichen alle Ereignisse im Domänenendpunkt. In den JSON-Ereignisdaten geben Sie das Thema an, an das die Ereignisse gesendet werden sollen. Das folgende Array von Ereignissen würde zu einem Ereignis mit "id": "1111"
für Thema demotopic1
führen, während ein Ereignis mit "id": "2222"
an Thema demotopic2
gesendet würde:
[{
"topic": "demotopic1",
"id": "1111",
"eventType": "maintenanceRequested",
"subject": "myapp/vehicles/diggers",
"eventTime": "2018-10-30T21:03:07+00:00",
"data": {
"make": "Contoso",
"model": "Small Digger"
},
"dataVersion": "1.0"
},
{
"topic": "demotopic2",
"id": "2222",
"eventType": "maintenanceCompleted",
"subject": "myapp/vehicles/tractors",
"eventTime": "2018-10-30T21:04:12+00:00",
"data": {
"make": "Contoso",
"model": "Big Tractor"
},
"dataVersion": "1.0"
}]
Um den Domänenendpunkt mit der Azure CLI abzurufen, verwenden Sie Folgendes:
az eventgrid domain show \
-g <my-resource-group> \
-n <my-domain>
Um die Schlüssel für eine Domäne abzurufen, verwenden Sie Folgendes:
az eventgrid domain key list \
-g <my-resource-group> \
-n <my-domain>
Verwenden Sie anschließend Ihre bevorzugte Methode zum Erstellen eines HTTP-POST-Aufrufs, um Ihre Ereignisse für Ihre Event Grid-Domäne zu veröffentlichen.
Hinweis
Beispiele für die Verwendung von Programmiersprache-SDKs zum Veröffentlichen von Ereignissen in einer Event Grid-Domäne finden Sie unter den folgenden Links:
Durchsuchen von Liste mit Themen oder Abonnements
Um eine große Anzahl von Themen oder Abonnements zu durchsuchen und zu verwalten, unterstützen die Event Grid-APIs Auflisten und Paginierung.
Verwenden von CLI
Mit dem folgenden Befehl werden z. B. alle Themen aufgelistet, deren Name mytopic
enthält.
az eventgrid topic list --odata-query "contains(name, 'mytopic')"
Weitere Informationen über diesen Befehl finden Sie unter az eventgrid topic list
.
Nächste Schritte
- Weitere Informationen zu grundlegenden Konzepten in Ereignisdomänen und zum Grund ihrer Nützlichkeit finden Sie unter Konzeptionelle Übersicht über Ereignisdomänen.