Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
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 :
- code source
- package (NPM)
- Documentation de référence de l’API
- documentation produit
- Exemples
Commencer
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 de stratégie de support.
Conditions préalables
- Un abonnement Azure .
- Rubrique ou domaine event Grid existant Event Grid. 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>
Installer le package @azure/eventgrid-namespaces
Installez la bibliothèque cliente Des 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 pour accéder à l’API Espaces de noms Event Grid, vous aurez besoin des 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 trouverez le point de terminaison de votre rubrique Event Grid dans le du 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'azure CLI extrait de code 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 classe AzureKeyCredential 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 aux utilisateurs, groupes ou applications.
Pour envoyer des événements à une rubrique ou un domaine avec un TokenCredential, l’identité authentifiée doit avoir le rôle « Expéditeur de données EventGrid » attribué.
Avec le package @azure/identity, 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 la @azure/identity README.
Par exemple, l’utilisation peut utiliser DefaultAzureCredential pour construire un client qui s’authentifie à 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 pouvez être utilisé pour envoyer des événements à une grille d’événements. Vous pouvez l’initialiser comme suit :
const eventGridSenderClient = new EventGridSenderClient(
"<endpoint>",
new AzureKeyCredential("<API Key>"),
"<topicName>"
);
EventGridReceiverClient pouvez être utilisé pour recevoir des événements à partir d’un Event Grid. 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. Lorsque vous utilisez le suivi distribué, cette bibliothèque crée une étendue pendant une opération de send. En outre, lors de l’envoi d’événements à l’aide du schéma Cloud Events 1.0, le Kit de développement logiciel (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 en-têtes traceparent 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 qu’elle n’est pas mise à 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);
Dépannage
Exploitation forestière
L’activation de la journalisation peut vous aider à découvrir des informations utiles sur les échecs. Pour afficher 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 la @azure/logger:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Pour obtenir des instructions plus détaillées sur l’activation des journaux d’activité, vous pouvez consulter les documents de package @azure/enregistreur d’événements.
Étapes suivantes
Consultez les exemples répertoire pour obtenir des exemples détaillés sur l’utilisation de cette bibliothèque.
Contribuant
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 connexes
Azure SDK for JavaScript