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
- Versions LTS de Node.js
- Dernières versions de Safari, Chrome, Edge et Firefox.
Pour plus d’informations, consultez notre politique de support .
Prérequis
- Un abonnement Azure.
- Une rubrique ou un domaine Event Grid existant. Si vous devez créer la ressource, vous pouvez utiliser le portail Azure ou Azure CLI.
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.
Projets associés
Azure SDK for JavaScript