Biblioteca cliente de espacios de nombres de Azure Event Grid para JavaScript: versión 1.0.0
azure Event Grid es un servicio basado en la nube que proporciona entrega de eventos confiable a gran escala.
Uso de la biblioteca cliente para enviar eventos a espacios de nombres de Event Grid
Vínculos clave:
- código fuente
- paquete de (NPM)
- documentación de referencia de api de
- documentación del producto de
- ejemplos de
Empezar
Entornos admitidos actualmente
- versiones ltS de Node.js
- Versiones más recientes de Safari, Chrome, Edge y Firefox.
Consulte nuestra de directiva de soporte técnico de para obtener más información.
Prerrequisitos
- Una suscripción de Azure .
- Un tema o dominio de Event Grid existente. Si necesita crear el recurso, puede usar el azure Portal o cli de Azure.
Si usa la CLI de Azure, reemplace <your-resource-group-name>
y <your-resource-name>
por sus propios nombres únicos:
Creación de un tema de Event Grid
az eventgrid topic create --location <location> --resource-group <your-resource-group-name> --name <your-resource-name>
Creación de un dominio de Event Grid
az eventgrid domain create --location <location> --resource-group <your-resource-group-name> --name <your-resource-name>
Instalación del paquete @azure/eventgrid-namespaces
Instale la biblioteca cliente de espacios de nombres de Azure Event Grid para JavaScript con npm
:
npm install @azure/eventgrid-namespaces
Creación y autenticación de clientes de espacio de nombres
Para crear un objeto de cliente para acceder a la API de espacios de nombres de Event Grid, necesitará el endpoint
del tema de Event Grid y un credential
. Los clientes de espacios de nombres de Event Grid pueden usar una clave de acceso.
Puede encontrar el punto de conexión del tema de Event Grid en el de Azure Portal de o mediante el fragmento de código de la CLI de Azure siguiente:
az eventgrid topic show --name <your-resource-name> --resource-group <your-resource-group-name> --query "endpoint"
Uso de una clave de acceso
Use el de Azure Portal de para ir al recurso de Event Grid y recuperar una clave de acceso, o use el fragmento de código de la CLI de Azure siguiente:
az eventgrid topic key list --resource-group <your-resource-group-name> --name <your-event-grid-topic-name>
Una vez que tenga una clave de API y un punto de conexión, puede usar la clase AzureKeyCredential
para autenticar el cliente de la siguiente manera:
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 proporciona integración con Azure Active Directory (Azure AD) para la autenticación basada en identidad de las solicitudes. Con Azure AD, puede usar el control de acceso basado en rol (RBAC) para conceder acceso a los recursos de Azure Event Grid a usuarios, grupos o aplicaciones.
Para enviar eventos a un tema o dominio con un TokenCredential
, la identidad autenticada debe tener asignado el rol "Remitente de datos de EventGrid".
Con el paquete @azure/identity
, puede autorizar sin problemas las solicitudes en entornos de desarrollo y producción. Para obtener más información sobre Azure Active Directory, consulte @azure/identity
LÉAME.
Por ejemplo, puede usar DefaultAzureCredential
para construir un cliente que se autenticará mediante 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>"
);
Conceptos clave
Envío y recepción de eventos
EventGridSenderClient
se puede usar para enviar eventos a Event Grid. Puede inicializarlo como:
const eventGridSenderClient = new EventGridSenderClient(
"<endpoint>",
new AzureKeyCredential("<API Key>"),
"<topicName>"
);
EventGridReceiverClient
se pueden usar para recibir eventos de una instancia de Event Grid. Puede inicializarlo como:
const eventGridReceiverClient = new EventGridReceiverClient(
"<endpoint>",
new AzureKeyCredential("<API Key>"),
"<topicName>",
"<subscriptionName>"
);
Seguimiento distribuido y eventos en la nube
Esta biblioteca admite el seguimiento distribuido mediante @azure/core-tracing
. Al usar el seguimiento distribuido, esta biblioteca creará un intervalo durante una operación de send
. Además, al enviar eventos mediante el esquema de Cloud Events 1.0, el SDK agregará metadatos de seguimiento distribuido a los eventos mediante la extensión de seguimiento distribuido . Los valores de las propiedades de extensión traceparent
y tracestate
corresponden a los encabezados traceparent
y tracestate
de la solicitud HTTP que envía los eventos. Si un evento ya tiene una propiedad de extensión traceparent
no se actualiza.
Event Grid en Kubernetes
Esta biblioteca se ha probado y validado en Kubernetes mediante Azure Arc.
Ejemplos
Publicación de un evento en un tema de 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);
Solución de problemas
Registro
Habilitar el registro puede ayudar a descubrir información útil sobre errores. Para ver un registro de solicitudes y respuestas HTTP, establezca la variable de entorno AZURE_LOG_LEVEL
en info
. Como alternativa, el registro se puede habilitar en tiempo de ejecución llamando a setLogLevel
en el @azure/logger
:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Para obtener instrucciones más detalladas sobre cómo habilitar los registros, puede consultar los documentos del paquete de @azure/registrador.
Pasos siguientes
Eche un vistazo al directorio ejemplos para obtener ejemplos detallados sobre cómo usar esta biblioteca.
Contribuyendo
Si desea contribuir a esta biblioteca, lea la guía de contribución de para obtener más información sobre cómo compilar y probar el código.
Proyectos relacionados
Azure SDK for JavaScript