Biblioteka klienta przestrzeni nazw usługi Azure Event Grid dla języka JavaScript — wersja 1.0.0
Azure Event Grid to oparta na chmurze usługa, która zapewnia niezawodne dostarczanie zdarzeń na ogromną skalę.
Wysyłanie zdarzeń do przestrzeni nazw usługi Event Grid za pomocą biblioteki klienta
Linki kluczowe:
Wprowadzenie
Obecnie obsługiwane środowiska
- Wersje LTS Node.js
- Najnowsze wersje przeglądarek Safari, Chrome, Edge i Firefox.
Aby uzyskać więcej informacji, zobacz nasze zasady pomocy technicznej .
Wymagania wstępne
- Subskrypcja platformy Azure.
- Istniejący temat lub domena usługi Event Grid . Jeśli musisz utworzyć zasób, możesz użyć witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure.
Jeśli używasz interfejsu wiersza polecenia platformy Azure, zastąp <your-resource-group-name>
wartości i <your-resource-name>
własnymi unikatowymi nazwami:
Tworzenie tematu usługi Event Grid
az eventgrid topic create --location <location> --resource-group <your-resource-group-name> --name <your-resource-name>
Tworzenie domeny usługi Event Grid
az eventgrid domain create --location <location> --resource-group <your-resource-group-name> --name <your-resource-name>
Instalowanie pakietu @azure/eventgrid-namespaces
Zainstaluj bibliotekę klienta przestrzeni nazw usługi Azure Event Grid dla języka JavaScript za pomocą polecenia npm
:
npm install @azure/eventgrid-namespaces
Tworzenie i uwierzytelnianie klientów przestrzeni nazw
Aby utworzyć obiekt klienta w celu uzyskania dostępu do interfejsu API przestrzeni nazw usługi Event Grid, potrzebujesz endpoint
tematu usługi Event Grid i elementu credential
. Klienci przestrzeni nazw usługi Event Grid mogą używać klucza dostępu.
Punkt końcowy tematu usługi Event Grid można znaleźć w witrynie Azure Portal lub przy użyciu poniższego fragmentu wiersza polecenia platformy Azure :
az eventgrid topic show --name <your-resource-name> --resource-group <your-resource-group-name> --query "endpoint"
Używanie klucza dostępu
Użyj witryny Azure Portal , aby przejść do zasobu usługi Event Grid i pobrać klucz dostępu lub użyć poniższego fragmentu kodu interfejsu wiersza polecenia platformy Azure :
az eventgrid topic key list --resource-group <your-resource-group-name> --name <your-event-grid-topic-name>
Po utworzeniu klucza interfejsu API i punktu końcowego możesz użyć AzureKeyCredential
klasy , aby uwierzytelnić klienta w następujący sposób:
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>")
);
Usługa Azure EventGrid zapewnia integrację z usługą Azure Active Directory (Azure AD) na potrzeby uwierzytelniania opartego na tożsamościach żądań. Za pomocą usługi Azure AD możesz użyć kontroli dostępu opartej na rolach (RBAC), aby udzielić dostępu do zasobów usługi Azure Event Grid użytkownikom, grupom lub aplikacjom.
Aby wysyłać zdarzenia do tematu lub domeny za pomocą TokenCredential
elementu , tożsamość uwierzytelniona powinna mieć przypisaną rolę "Nadawca danych usługi EventGrid".
@azure/identity
Pakiet umożliwia bezproblemowe autoryzowanie żądań zarówno w środowiskach deweloperskich, jak i produkcyjnych. Aby dowiedzieć się więcej o usłudze Azure Active Directory, zobacz @azure/identity
PLIK README.
Na przykład można użyć polecenia DefaultAzureCredential
, aby skonstruować klienta, który będzie uwierzytelniany przy użyciu usługi 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>"
);
Kluczowe pojęcia
Wysyłanie i odbieranie zdarzeń
EventGridSenderClient
może służyć do wysyłania zdarzeń do usługi Event Grid. Można go zainicjować w następujący sposób:
const eventGridSenderClient = new EventGridSenderClient(
"<endpoint>",
new AzureKeyCredential("<API Key>"),
"<topicName>"
);
EventGridReceiverClient
może służyć do odbierania zdarzeń z usługi Event Grid. Można go zainicjować w następujący sposób:
const eventGridReceiverClient = new EventGridReceiverClient(
"<endpoint>",
new AzureKeyCredential("<API Key>"),
"<topicName>",
"<subscriptionName>"
);
Śledzenie rozproszone i zdarzenia w chmurze
Ta biblioteka obsługuje śledzenie rozproszone przy użyciu polecenia @azure/core-tracing
. W przypadku korzystania z śledzenia rozproszonego ta biblioteka utworzy zakres podczas send
operacji. Ponadto podczas wysyłania zdarzeń przy użyciu schematu zdarzeń w chmurze 1.0 zestaw SDK doda metadane śledzenia rozproszonego do zdarzeń przy użyciu rozszerzenia Rozproszone śledzenie. Wartości traceparent
właściwości rozszerzenia i tracestate
odpowiadają traceparent
nagłówkom i tracestate
z żądania HTTP, które wysyła zdarzenia. Jeśli zdarzenie ma traceparent
już właściwość rozszerzenia, nie została zaktualizowana.
Usługa Event Grid na platformie Kubernetes
Ta biblioteka została przetestowana i zweryfikowana na platformie Kubernetes przy użyciu usługi Azure Arc.
Przykłady
Publikowanie zdarzenia w temacie usługi Event Grid
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);
Rozwiązywanie problemów
Rejestrowanie
Włączenie rejestrowania może pomóc odkryć przydatne informacje o błędach. Aby wyświetlić dziennik żądań i odpowiedzi HTTP, ustaw zmienną AZURE_LOG_LEVEL
środowiskową na info
. Alternatywnie rejestrowanie można włączyć w czasie wykonywania, wywołując setLogLevel
polecenie w pliku @azure/logger
:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Aby uzyskać bardziej szczegółowe instrukcje dotyczące włączania dzienników, zapoznaj się z dokumentami dotyczącymi pakietu @azure/rejestratora.
Następne kroki
Zapoznaj się z katalogiem samples , aby zapoznać się ze szczegółowymi przykładami dotyczącymi korzystania z tej biblioteki.
Współtworzenie
Jeśli chcesz współtworzyć tę bibliotekę, przeczytaj przewodnik współtworzenia , aby dowiedzieć się więcej na temat tworzenia i testowania kodu.
Powiązane projekty
Azure SDK for JavaScript