Azure Event Grid Namespaces-Clientbibliothek für JavaScript– Version 1.0.0
Azure Event Grid ist ein cloudbasierter Dienst, der eine zuverlässige Ereignisbereitstellung in großem Umfang ermöglicht.
Verwenden der Clientbibliothek zum Senden von Ereignissen an Event Grid-Namespaces
Wichtige Links:
Erste Schritte
Die derzeitig unterstützten Umgebungen
- LTS-Versionen von Node.js
- Neueste Versionen von Safari, Chrome, Edge und Firefox.
Ausführlichere Informationen finden Sie in der Supportrichtlinie.
Voraussetzungen
- Ein Azure-Abonnement.
- Ein vorhandenes Event Grid-Thema oder eine vorhandene Domäne. Wenn Sie die Ressource erstellen müssen, können Sie das Azure-Portal oder die Azure CLI verwenden.
Wenn Sie die Azure CLI verwenden, ersetzen <your-resource-group-name>
Sie und <your-resource-name>
durch Ihre eigenen eindeutigen Namen:
Erstellen eines Event Grid-Themas
az eventgrid topic create --location <location> --resource-group <your-resource-group-name> --name <your-resource-name>
Erstellen einer Event Grid-Domäne
az eventgrid domain create --location <location> --resource-group <your-resource-group-name> --name <your-resource-name>
Installieren Sie das Paket @azure/eventgrid-namespaces
.
Installieren Sie die Azure Event Grid Namespaces-Clientbibliothek für JavaScript mit npm
:
npm install @azure/eventgrid-namespaces
Erstellen und Authentifizieren von Namespaceclients
Um ein Clientobjekt für den Zugriff auf die Event Grid-Namespaces-API zu erstellen, benötigen Sie die endpoint
ihres Event Grid-Themas und ein credential
. Die Event Grid-Namespaces-Clients können einen Zugriffsschlüssel verwenden.
Sie finden den Endpunkt für Ihr Event Grid-Thema entweder im Azure-Portal oder mithilfe des folgenden Azure CLI-Ausschnitts :
az eventgrid topic show --name <your-resource-name> --resource-group <your-resource-group-name> --query "endpoint"
Verwenden eines Zugriffsschlüssels
Verwenden Sie das Azure-Portal , um zu Ihrer Event Grid-Ressource zu navigieren und einen Zugriffsschlüssel abzurufen, oder verwenden Sie den folgenden Azure CLI-Codeausschnitt :
az eventgrid topic key list --resource-group <your-resource-group-name> --name <your-event-grid-topic-name>
Sobald Sie über einen API-Schlüssel und einen Endpunkt verfügen, können Sie die AzureKeyCredential
-Klasse verwenden, um den Client wie folgt zu authentifizieren:
const { EventGridSenderClient, EventGridReceiverClient, AzureKeyCredential } = require("@azure/eventgrid-namespaces");
const eventGridSenderClient = new EventGridSenderClient(
"<endpoint>",
new AzureKeyCredential("<Access Key>")
);
const eventGridReceiverClient = new EventGridReceiverClient(
"<endpoint>",
new AzureKeyCredential("<Access Key>")
);
Azure EventGrid bietet die Integration in Azure Active Directory (Azure AD) für die identitätsbasierte Authentifizierung von Anforderungen. Mit Azure AD können Sie die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) verwenden, um Benutzern, Gruppen oder Anwendungen Zugriff auf Ihre Azure Event Grid-Ressourcen zu gewähren.
Um Ereignisse mit einem an ein Thema oder eine TokenCredential
Domäne zu senden, muss der authentifizierten Identität die Rolle "EventGrid-Datensender" zugewiesen sein.
Mit dem @azure/identity
Paket können Sie Anforderungen nahtlos in Entwicklungs- und Produktionsumgebungen autorisieren. Weitere Informationen zu Azure Active Directory finden Sie in der @azure/identity
Infodatei.
Mithilfe von kann DefaultAzureCredential
beispielsweise ein Client erstellt werden, der sich mithilfe von Azure Active Directory authentifiziert:
const { EventGridSenderClient, EventGridReceiverClient } = require("@azure/eventgrid-namespaces");
const { DefaultAzureCredential } = require("@azure/identity");
const eventGridSenderClient = new EventGridSenderClient(
"<endpoint>",
new DefaultAzureCredential(),
"<topicName>"
);
const eventGridReceiverClient = new EventGridReceiverClient(
"<endpoint>",
new DefaultAzureCredential(),
"<topicName>",
"<subscriptionName>"
);
Wichtige Begriffe
Senden und Empfangen von Ereignissen
EventGridSenderClient
kann zum Senden von Ereignissen an ein Event Grid verwendet werden. Sie können sie wie folgende Initialisieren:
const eventGridSenderClient = new EventGridSenderClient(
"<endpoint>",
new AzureKeyCredential("<API Key>"),
"<topicName>"
);
EventGridReceiverClient
kann zum Empfangen von Ereignissen von einem Event Grid verwendet werden. Sie können sie wie folgende Initialisieren:
const eventGridReceiverClient = new EventGridReceiverClient(
"<endpoint>",
new AzureKeyCredential("<API Key>"),
"<topicName>",
"<subscriptionName>"
);
Verteilte Ablaufverfolgung und Cloudereignisse
Diese Bibliothek unterstützt die verteilte Ablaufverfolgung mit @azure/core-tracing
. Bei Verwendung der verteilten Ablaufverfolgung erstellt diese Bibliothek während eines Vorgangs eine send
Spanne. Darüber hinaus fügt das SDK beim Senden von Ereignissen mithilfe des Cloud Events 1.0-Schemas verteilte Ablaufverfolgungsmetadaten zu den Ereignissen mithilfe der Erweiterung Für verteilte Ablaufverfolgung hinzu. Die Werte für die Erweiterungseigenschaften traceparent
und tracestate
entsprechen den traceparent
Headern und tracestate
aus der HTTP-Anforderung, die die Ereignisse sendet. Wenn ein Ereignis bereits über eine Erweiterungseigenschaft traceparent
verfügt, wird es nicht aktualisiert.
Event Grid in Kubernetes
Diese Bibliothek wurde in Kubernetes mithilfe von Azure Arc getestet und überprüft.
Beispiele
Veröffentlichen eines Ereignisses in einem Event Grid-Thema
const { EventGridSenderClient, AzureKeyCredential } = require("@azure/eventgrid-namespaces");
const client = new EventGridSenderClient(
"<endpoint>",
new AzureKeyCredential("<API key>"),
"<topicName>"
);
const cloudEvent: CloudEvent = {
type: "example",
source: "https://example.com",
id: `singleEventIdV210001`,
time: new Date(),
data: {
resourceUri: "https://dummyurl.com",
},
specversion: "1.0",
};
// Publish the Cloud Event
await client.sendEvents(cloudEvent);
Problembehandlung
Protokollierung
Die Aktivierung der Protokollierung kann hilfreiche Informationen über Fehler aufdecken. Um ein Protokoll von HTTP-Anforderungen und -Antworten anzuzeigen, legen Sie die Umgebungsvariable AZURE_LOG_LEVEL
auf info
fest. Alternativ kann die Protokollierung zur Laufzeit aktiviert werden, indem Sie setLogLevel
in @azure/logger
aufrufen:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Ausführlichere Anweisungen zum Aktivieren der Protokolle finden Sie in der Dokumentation zu @azure-/Protokollierungspaketen.
Nächste Schritte
Ausführliche Beispiele zur Verwendung dieser Bibliothek finden Sie im Beispielverzeichnis .
Mitwirken
Wenn Sie an dieser Bibliothek mitwirken möchten, lesen Sie die Anleitung für Mitwirkende, um mehr darüber zu erfahren, wie Sie den Code erstellen und testen können.
Verwandte Projekte
Azure SDK for JavaScript