Freigeben über


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

Ausführlichere Informationen finden Sie in der Supportrichtlinie.

Voraussetzungen

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 TokenCredentialDomä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.

Aufrufe