Klientbibliotek för Azure Event Grid-namnområden för JavaScript – version 1.0.0
Azure Event Grid är en molnbaserad tjänst som ger tillförlitlig händelseleverans i massiv skala.
Använda klientbiblioteket för att skicka händelser till Event Grid-namnområden
Nyckellänkar:
Komma igång
Miljöer som stöds för närvarande
- LTS-versioner av Node.js
- De senaste versionerna av Safari, Chrome, Edge och Firefox.
Mer information finns i vår supportprincip .
Förutsättningar
- En Azure-prenumeration.
- Ett befintligt Event Grid-ämne eller en domän. Om du behöver skapa resursen kan du använda Azure-portalen eller Azure CLI.
Om du använder Azure CLI ersätter <your-resource-group-name>
du och <your-resource-name>
med dina egna unika namn:
Skapa ett Event Grid-ämne
az eventgrid topic create --location <location> --resource-group <your-resource-group-name> --name <your-resource-name>
Skapa en Event Grid-domän
az eventgrid domain create --location <location> --resource-group <your-resource-group-name> --name <your-resource-name>
Installera @azure/eventgrid-namespaces
-paketet
Installera Klientbiblioteket för Azure Event Grid-namnområden för JavaScript med npm
:
npm install @azure/eventgrid-namespaces
Skapa och autentisera namnområdesklienter
Om du vill skapa ett klientobjekt för att få åtkomst till Event Grid-namnrymds-API:et endpoint
behöver du avsnittet Event Grid och ett credential
. Event Grid-namnrymdsklienter kan använda en åtkomstnyckel.
Du hittar slutpunkten för event grid-ämnet antingen i Azure-portalen eller med hjälp av Azure CLI-kodfragmentet nedan:
az eventgrid topic show --name <your-resource-name> --resource-group <your-resource-group-name> --query "endpoint"
Använda en åtkomstnyckel
Använd Azure-portalen för att bläddra till din Event Grid-resurs och hämta en åtkomstnyckel, eller använd Azure CLI-kodfragmentet nedan:
az eventgrid topic key list --resource-group <your-resource-group-name> --name <your-event-grid-topic-name>
När du har en API-nyckel och slutpunkt kan du använda AzureKeyCredential
klassen för att autentisera klienten på följande sätt:
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 tillhandahåller integrering med Azure Active Directory (Azure AD) för identitetsbaserad autentisering av begäranden. Med Azure AD kan du använda rollbaserad åtkomstkontroll (RBAC) för att ge åtkomst till dina Azure Event Grid-resurser till användare, grupper eller program.
Om du vill skicka händelser till ett ämne eller en domän med en TokenCredential
ska den autentiserade identiteten ha rollen "EventGrid Data Sender" tilldelad.
Med paketet @azure/identity
kan du smidigt auktorisera begäranden i både utvecklings- och produktionsmiljöer. Mer information om Azure Active Directory finns i @azure/identity
README.
Du kan till exempel använda DefaultAzureCredential
för att skapa en klient som ska autentisera med Hjälp av 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>"
);
Viktiga begrepp
Skicka och ta emot händelser
EventGridSenderClient
kan användas för att skicka händelser till ett Event Grid. Du kan initiera det som:
const eventGridSenderClient = new EventGridSenderClient(
"<endpoint>",
new AzureKeyCredential("<API Key>"),
"<topicName>"
);
EventGridReceiverClient
kan användas för att ta emot händelser från ett Event Grid. Du kan initiera det som:
const eventGridReceiverClient = new EventGridReceiverClient(
"<endpoint>",
new AzureKeyCredential("<API Key>"),
"<topicName>",
"<subscriptionName>"
);
Distribuerade spårnings- och molnhändelser
Det här biblioteket stöder distribuerad spårning med .@azure/core-tracing
När du använder distribuerad spårning skapar det här biblioteket ett spann under en send
åtgärd. När du skickar händelser med cloud events 1.0-schemat lägger SDK dessutom till distribuerade spårningsmetadata till händelserna med hjälp av tillägget distribuerad spårning. Värdena för traceparent
egenskaperna och tracestate
tillägget motsvarar traceparent
- och tracestate
-huvudena från HTTP-begäran som skickar händelserna. Om en händelse redan har en traceparent
tilläggsegenskap uppdateras den inte.
Event Grid på Kubernetes
Det här biblioteket har testats och verifierats på Kubernetes med hjälp av Azure Arc.
Exempel
Publicera en händelse till ett Event Grid-ämne
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);
Felsökning
Loggning
Aktivering av loggning kan hjälpa dig att hitta användbar information om fel. Om du vill se en logg över HTTP-begäranden och svar anger du AZURE_LOG_LEVEL
miljövariabeln till info
. Du kan också aktivera loggning vid körning genom att anropa setLogLevel
i @azure/logger
:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Mer detaljerade anvisningar om hur du aktiverar loggarna finns i @azure-/loggningspaketdokumenten.
Nästa steg
Ta en titt på exempelkatalogen för detaljerade exempel på hur du använder det här biblioteket.
Bidra
Om du vill bidra till det här biblioteket kan du läsa bidragsguiden för att lära dig mer om hur du skapar och testar koden.
Relaterade projekt
Azure SDK for JavaScript