Condividi tramite


Libreria client degli spazi dei nomi di Griglia di eventi di Azure per JavaScript - versione 1.0.0

griglia di eventi di Azure è un servizio basato sul cloud che offre una distribuzione affidabile di eventi su larga scala.

Usare la libreria client per inviare eventi agli spazi dei nomi di Griglia di eventi

Collegamenti chiave:

Introduttiva

Ambienti attualmente supportati

Per altri dettagli, vedere i criteri di supporto .

Prerequisiti

Se si usa l'interfaccia della riga di comando di Azure, sostituire <your-resource-group-name> e <your-resource-name> con i propri nomi univoci:

Creare un argomento di Griglia di eventi

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

Creare un dominio di Griglia di eventi

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

Installare il pacchetto @azure/eventgrid-namespaces

Installare la libreria client degli spazi dei nomi di Griglia di eventi di Azure per JavaScript con npm:

npm install @azure/eventgrid-namespaces

Creare ed autenticare i client dello spazio dei nomi

Per creare un oggetto client per accedere all'API Spazi dei nomi di Griglia di eventi, è necessario il endpoint dell'argomento di Griglia di eventi e un credential. I client di Spazi dei nomi di Griglia di eventi possono usare una chiave di accesso.

È possibile trovare l'endpoint per l'argomento di Griglia di eventi nel del portale di Azure o usando il frammento di codice dell'interfaccia della riga di comando di Azure seguente:

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

Uso di una chiave di accesso

Usare il del portale di Azure per passare alla risorsa di Griglia di eventi e recuperare una chiave di accesso oppure usare il frammento di codice dell'interfaccia della riga di comando di Azure seguente:

az eventgrid topic key list --resource-group <your-resource-group-name> --name <your-event-grid-topic-name>

Dopo aver creato una chiave API e un endpoint, è possibile usare la classe AzureKeyCredential per autenticare il client come indicato di seguito:

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 offre l'integrazione con Azure Active Directory (Azure AD) per l'autenticazione basata su identità delle richieste. Con Azure AD è possibile usare il controllo degli accessi in base al ruolo per concedere l'accesso alle risorse di Griglia di eventi di Azure a utenti, gruppi o applicazioni.

Per inviare eventi a un argomento o a un dominio con un TokenCredential, all'identità autenticata deve essere assegnato il ruolo "Mittente dati EventGrid".

Con il pacchetto @azure/identity, è possibile autorizzare facilmente le richieste in ambienti di sviluppo e produzione. Per altre informazioni su Azure Active Directory, vedere @azure/identity README.

Ad esempio, è possibile usare DefaultAzureCredential per costruire un client che eseguirà l'autenticazione con 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>"
);

Concetti chiave

Invio e ricezione di eventi

EventGridSenderClient può essere usato per l'invio di eventi a una Griglia di eventi. È possibile inizializzarlo come:

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

EventGridReceiverClient può essere usato per ricevere eventi da griglia di eventi. È possibile inizializzarlo come:

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

Eventi cloud e traccia distribuita

Questa libreria supporta la traccia distribuita usando @azure/core-tracing. Quando si usa la traccia distribuita, questa libreria creerà un intervallo durante un'operazione di send. Inoltre, quando si inviano eventi usando lo schema Eventi cloud 1.0, l'SDK aggiungerà metadati di traccia distribuiti agli eventi usando l'estensione di traccia distribuita . I valori per le proprietà dell'estensione traceparent e tracestate corrispondono alle intestazioni traceparent e tracestate dalla richiesta HTTP che invia gli eventi. Se un evento ha già una proprietà di estensione traceparent non viene aggiornata.

Griglia di eventi in Kubernetes

Questa libreria è stata testata e convalidata in Kubernetes usando Azure Arc.

Esempi

Pubblicare un evento in un argomento di Griglia di eventi

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

Risoluzione dei problemi

Registrazione

L'abilitazione della registrazione può aiutare a individuare informazioni utili sugli errori. Per visualizzare un log di richieste e risposte HTTP, impostare la variabile di ambiente AZURE_LOG_LEVEL su info. In alternativa, la registrazione può essere abilitata in fase di esecuzione chiamando setLogLevel nel @azure/logger:

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

setLogLevel("info");

Per istruzioni più dettagliate su come abilitare i log, è possibile esaminare la documentazione del pacchetto @azure/logger.

Passaggi successivi

Per esempi dettagliati su come usare questa libreria, vedere gli esempi di directory.

Contribuire

Per contribuire a questa libreria, leggere la guida contribuire per altre informazioni su come compilare e testare il codice.

impressioni