Udostępnij za pośrednictwem


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

Aby uzyskać więcej informacji, zobacz nasze zasady pomocy technicznej .

Wymagania wstępne

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ą TokenCredentialelementu , 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.

Wrażenia