Partager via


Bibliothèque cliente d’espaces de noms Azure Event Grid pour JavaScript - version 1.0.0

Azure Event Grid est un service cloud qui fournit une livraison d’événements fiable à grande échelle.

Utiliser la bibliothèque cliente pour envoyer des événements à des espaces de noms Event Grid

Liens clés :

Prise en main

Environnements actuellement pris en charge

Pour plus d’informations, consultez notre politique de support .

Prérequis

Si vous utilisez Azure CLI, remplacez <your-resource-group-name> et <your-resource-name> par vos propres noms uniques :

Créer une rubrique Event Grid

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

Créer un domaine Event Grid

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

Installez le package @azure/eventgrid-namespaces

Installez la bibliothèque cliente Espaces de noms Azure Event Grid pour JavaScript avec npm:

npm install @azure/eventgrid-namespaces

Créer et authentifier des clients d’espace de noms

Pour créer un objet client afin d’accéder à l’API Espaces de noms Event Grid, vous avez besoin du endpoint de votre rubrique Event Grid et d’un credential. Les clients d’espaces de noms Event Grid peuvent utiliser une clé d’accès.

Vous pouvez trouver le point de terminaison de votre rubrique Event Grid dans le portail Azure ou à l’aide de l’extrait de code Azure CLI ci-dessous :

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

Utilisation d’une clé d’accès

Utilisez le portail Azure pour accéder à votre ressource Event Grid et récupérer une clé d’accès, ou utilisez l’extrait de code Azure CLI ci-dessous :

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

Une fois que vous disposez d’une clé API et d’un point de terminaison, vous pouvez utiliser la AzureKeyCredential classe pour authentifier le client comme suit :

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 fournit une intégration à Azure Active Directory (Azure AD) pour l’authentification basée sur l’identité des demandes. Avec Azure AD, vous pouvez utiliser le contrôle d’accès en fonction du rôle (RBAC) pour accorder l’accès à vos ressources Azure Event Grid à des utilisateurs, des groupes ou des applications.

Pour envoyer des événements à une rubrique ou un domaine avec un TokenCredential, le rôle « Expéditeur de données EventGrid » doit être attribué à l’identité authentifiée.

Avec le @azure/identity package, vous pouvez autoriser en toute transparence les demandes dans les environnements de développement et de production. Pour en savoir plus sur Azure Active Directory, consultez le @azure/identity FICHIER LISEZ-MOI.

Par exemple, l’utilisation peut utiliser DefaultAzureCredential pour construire un client qui s’authentifiera à l’aide d’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>"
);

Concepts clés

Envoi et réception d’événements

EventGridSenderClient peut être utilisé pour envoyer des événements à un Event Grid. Vous pouvez l’initialiser comme suit :

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

EventGridReceiverClient peut être utilisé pour recevoir des événements à partir d’une grille d’événements. Vous pouvez l’initialiser comme suit :

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

Suivi distribué et événements cloud

Cette bibliothèque prend en charge le suivi distribué à l’aide de @azure/core-tracing. Lors de l’utilisation du suivi distribué, cette bibliothèque crée une étendue au cours d’une send opération. En outre, lors de l’envoi d’événements à l’aide du schéma Cloud Events 1.0, le SDK ajoute des métadonnées de suivi distribué aux événements à l’aide de l’extension De suivi distribué. Les valeurs des propriétés d’extension traceparent et tracestate correspondent aux traceparent en-têtes et tracestate de la requête HTTP qui envoie les événements. Si un événement a déjà une propriété d’extension traceparent , il n’est pas mis à jour.

Event Grid sur Kubernetes

Cette bibliothèque a été testée et validée sur Kubernetes à l’aide d’Azure Arc.

Exemples

Publier un événement dans une rubrique 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);

Résolution des problèmes

Journalisation

L’activation de la journalisation peut vous aider à mieux comprendre les échecs. Pour avoir un journal des requêtes et réponses HTTP, définissez la variable d’environnement AZURE_LOG_LEVEL sur info. Vous pouvez également activer la journalisation au moment de l’exécution en appelant setLogLevel dans @azure/logger :

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

setLogLevel("info");

Pour obtenir des instructions plus détaillées sur l’activation des journaux, vous pouvez consulter la documentation sur le package @azure/enregistreur d’événements.

Étapes suivantes

Consultez le répertoire d’exemples pour obtenir des exemples détaillés sur l’utilisation de cette bibliothèque.

Contribution

Si vous souhaitez contribuer à cette bibliothèque, lisez le guide de contribution pour en savoir plus sur la génération et le test du code.

Impressions