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 im großen Maßstab bietet.

Verwenden der Clientbibliothek zum Senden von Ereignissen an Event Grid-Namespaces

Wichtige Links:

Erste Schritte

Derzeit unterstützte Umgebungen

Weitere Informationen finden Sie in unserer Supportrichtlinie.

Voraussetzungen

Wenn Sie die Azure CLI verwenden, ersetzen Sie <your-resource-group-name> und <your-resource-name> durch Ihre eigenen eindeutigen Namen:

Erstellen eines Ereignisrasterthemas

az eventgrid topic create --location <location> --resource-group <your-resource-group-name> --name <your-resource-name>

Erstellen einer Ereignisrasterdomäne

az eventgrid domain create --location <location> --resource-group <your-resource-group-name> --name <your-resource-name>

Installieren des @azure/eventgrid-namespaces-Pakets

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 Ereignisrasterthemas und eines credential. Die Event Grid-Namespaces-Clients können einen Zugriffstaste verwenden.

Sie finden den Endpunkt für Ihr Ereignisrasterthema entweder im Azure Portal oder mithilfe des folgenden Azure CLI Codeausschnitts:

az eventgrid topic show --name <your-resource-name> --resource-group <your-resource-group-name> --query "endpoint"

Verwenden einer Zugriffstaste

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>

Nachdem 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 Integration in Azure Active Directory (Azure AD) für die identitätsbasierte Authentifizierung von Anforderungen. Mit Azure AD können Sie rollenbasierte Zugriffssteuerung (RBAC) verwenden, um Benutzern, Gruppen oder Anwendungen Zugriff auf Ihre Azure Event Grid-Ressourcen zu gewähren.

Zum Senden von Ereignissen an ein Thema oder eine Domäne mit einem TokenCredentialsollte die authentifizierte Identität die Rolle "EventGrid Data Sender" zugewiesen haben.

Mit dem @azure/identity-Paket können Sie Anforderungen in Entwicklungs- und Produktionsumgebungen nahtlos autorisieren. Weitere Informationen zu Azure Active Directory finden Sie im @azure/identity README-.

Verwenden Sie z. B. DefaultAzureCredential, um einen Client zu erstellen, der sich mit 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>"
);

Schlüsselkonzepte

Senden und Empfangen von Ereignissen

EventGridSenderClient können zum Senden von Ereignissen an ein Ereignisraster verwendet werden. Sie können sie wie möglich initialisieren:

const eventGridSenderClient = new EventGridSenderClient(
  "<endpoint>",
  new AzureKeyCredential("<API Key>"),
  "<topicName>"
);

EventGridReceiverClient können zum Empfangen von Ereignissen aus einem Ereignisraster verwendet werden. Sie können sie wie möglich initialisieren:

const eventGridReceiverClient = new EventGridReceiverClient(
  "<endpoint>",
  new AzureKeyCredential("<API Key>"),
  "<topicName>",
  "<subscriptionName>"
);

Verteilte Ablaufverfolgung und Cloudereignisse

Diese Bibliothek unterstützt die verteilte Ablaufverfolgung mithilfe von @azure/core-tracing. Bei Verwendung der verteilten Ablaufverfolgung erstellt diese Bibliothek während eines send Vorgangs eine Spanne. Darüber hinaus fügt das SDK beim Senden von Ereignissen mithilfe des Cloud Events 1.0-Schemas verteilte Ablaufverfolgungsmetadaten zu den Ereignissen hinzu, indem die Erweiterung "Verteilte Ablaufverfolgung"verwendet wird. Die Werte für die traceparent- und tracestate Erweiterungseigenschaften entsprechen den traceparent und tracestate Headern aus der HTTP-Anforderung, die die Ereignisse sendet. Wenn ein Ereignis bereits über eine traceparent Erweiterungseigenschaft verfügt, wird es nicht aktualisiert.

Ereignisraster auf Kubernetes

Diese Bibliothek wurde mit Azure Arc aufKubernetes getestet und überprüft.

Beispiele

Veröffentlichen eines Ereignisses in einem Ereignisrasterthema

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);

Fehlerbehebung

Protokollierung

Das Aktivieren der Protokollierung kann hilfreiche Informationen zu Fehlern aufdecken. Um ein Protokoll von HTTP-Anforderungen und -Antworten anzuzeigen, legen Sie die AZURE_LOG_LEVEL Umgebungsvariable auf infofest. Alternativ kann die Protokollierung zur Laufzeit durch Aufrufen von setLogLevel im @azure/loggeraktiviert werden:

const { setLogLevel } = require("@azure/logger");

setLogLevel("info");

Ausführlichere Anweisungen zum Aktivieren der Protokolle finden Sie in den @azure/Logger-Paketdokumenten.

Nächste Schritte

Ausführliche Beispiele zur Verwendung dieser Bibliothek finden Sie in den Beispielen Verzeichnis.

Beitragend

Wenn Sie an dieser Bibliothek mitwirken möchten, lesen Sie bitte den mitwirkenden Leitfaden, um mehr über das Erstellen und Testen des Codes zu erfahren.

Aufrufe