Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure Event Grid je cloudová služba, která poskytuje spolehlivé doručování událostí ve velkém měřítku.
Použití klientské knihovny k odesílání událostí do oborů názvů Event Gridu
Klíčové odkazy:
- zdrojového kódu
- balíčku (NPM)
- Referenční dokumentace k rozhraní API
- dokumentace k produktu
- ukázky
Začínáme
Aktuálně podporovaná prostředí
- LTS verze Node.js
- Nejnovější verze Safari, Chrome, Edge a Firefox.
Další podrobnosti najdete v našich zásadách podpory .
Požadavky
- Předplatné Azure.
- Existující Event Grid tématu nebo doméně. Pokud potřebujete prostředek vytvořit, můžete použít webu Azure Portal nebo azure CLI.
Pokud používáte Azure CLI, nahraďte <your-resource-group-name> a <your-resource-name> vlastními jedinečnými názvy:
Vytvoření tématu Event Gridu
az eventgrid topic create --location <location> --resource-group <your-resource-group-name> --name <your-resource-name>
Vytvoření domény Event Gridu
az eventgrid domain create --location <location> --resource-group <your-resource-group-name> --name <your-resource-name>
Instalace balíčku @azure/eventgrid-namespaces
Nainstalujte klientskou knihovnu Azure Event Grid Namespaces pro JavaScript s npm:
npm install @azure/eventgrid-namespaces
Vytvoření a ověření klientů oboru názvů
Pokud chcete vytvořit objekt klienta pro přístup k rozhraní API pro obory názvů služby Event Grid, budete potřebovat endpoint tématu Event Gridu a credential. Klienti služby Event Grid Namespaces můžou používat přístupový klíč.
Koncový bod tématu služby Event Grid najdete na webu azure Portal nebo pomocí fragmentu kódu Azure CLI níže:
az eventgrid topic show --name <your-resource-name> --resource-group <your-resource-group-name> --query "endpoint"
Použití přístupového klíče
Pomocí webu Azure Portal přejděte k prostředku služby Event Grid a načtěte přístupový klíč nebo použijte azure CLI fragment kódu níže:
az eventgrid topic key list --resource-group <your-resource-group-name> --name <your-event-grid-topic-name>
Jakmile máte klíč rozhraní API a koncový bod, můžete k ověření klienta použít třídu AzureKeyCredential následujícím způsobem:
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 poskytuje integraci se službou Azure Active Directory (Azure AD) pro ověřování požadavků na základě identit. Pomocí Azure AD můžete pomocí řízení přístupu na základě role (RBAC) udělit přístup k prostředkům Azure Event Gridu uživatelům, skupinám nebo aplikacím.
Pokud chcete odesílat události do tématu nebo domény s TokenCredential, měla by mít ověřená identita přiřazenou roli EventGrid Data Sender.
S balíčkem @azure/identity můžete bez problémů autorizovat požadavky v vývojových i produkčních prostředích. Další informace o Azure Active Directory najdete v @azure/identity README .
Můžete například použít DefaultAzureCredential k vytvoření klienta, který se ověří pomocí Azure Active Directory:
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>"
);
Klíčové koncepty
Odesílání a příjem událostí
EventGridSenderClient lze použít k odesílání událostí do event Gridu. Inicializovat ho můžete takto:
const eventGridSenderClient = new EventGridSenderClient(
"<endpoint>",
new AzureKeyCredential("<API Key>"),
"<topicName>"
);
EventGridReceiverClient lze použít pro příjem událostí z Event Gridu. Inicializovat ho můžete takto:
const eventGridReceiverClient = new EventGridReceiverClient(
"<endpoint>",
new AzureKeyCredential("<API Key>"),
"<topicName>",
"<subscriptionName>"
);
Distribuované trasování a cloudové události
Tato knihovna podporuje distribuované trasování pomocí @azure/core-tracing. Při použití distribuovaného trasování vytvoří tato knihovna rozsah během operace send. Kromě toho při odesílání událostí pomocí schématu Cloud Events 1.0 sada SDK přidá do událostí distribuovaná metadata trasování pomocí rozšíření Distribuované trasování. Hodnoty vlastností rozšíření traceparent a tracestate odpovídají hlavičce traceparent a tracestate z požadavku HTTP, který odesílá události. Pokud událost již má vlastnost rozšíření traceparent, není aktualizována.
Event Grid v Kubernetes
Tato knihovna byla testována a ověřena na Kubernetes pomocí služby Azure Arc.
Příklady
Publikování události do tématu Event Gridu
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);
Řešení problémů
Protokolování
Povolení protokolování může pomoct odhalit užitečné informace o chybách. Pokud chcete zobrazit protokol požadavků a odpovědí HTTP, nastavte proměnnou prostředí AZURE_LOG_LEVEL na info. Případně můžete protokolování povolit za běhu voláním setLogLevel v @azure/logger:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Podrobnější pokyny k povolení protokolů najdete v dokumentaci k @azure/protokolovacímu balíčku.
Další kroky
Podrobné příklady použití této knihovny najdete v ukázkách adresáři.
Přispívající
Pokud chcete přispívat do této knihovny, přečtěte si průvodce přispívání a přečtěte si další informace o vytváření a testování kódu.
Související projekty
Azure SDK for JavaScript