Compartir a través de


Azure Event Grid biblioteca cliente de espacios de nombres para JavaScript: versión 1.0.0-beta.2

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 principales:

Introducción

Entornos admitidos actualmente

Para más información, consulte la directiva de compatibilidad.

Requisitos previos

Si usa la CLI de Azure, reemplace <your-resource-group-name> y <your-resource-name> por sus propios nombres únicos:

Crear un tema de Event Grid

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

Crear un dominio de Event Grid

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

Instalar el 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

Crear y autenticar una EventGridNamespacesClient

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. El cliente de Event Grid puede usar una clave de acceso.

Puede encontrar el punto de conexión del tema de Event Grid en Azure Portal 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 Azure Portal para ir al recurso de Event Grid y recuperar una clave de acceso, o bien 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 AzureKeyCredential clase para autenticar el cliente de la siguiente manera:

const { EventGridClient, AzureKeyCredential } = require("@azure/eventgrid-namespaces");

const client = new EventGridClient(
  "<endpoint>",
  new AzureKeyCredential("<Access Key>")
);

Azure EventGrid proporciona integración con Azure Active Directory (Azure AD) para la autenticación basada en identidades 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 , TokenCredentialla identidad autenticada debe tener asignado el rol "Remitente de datos de EventGrid".

Con el @azure/identity paquete, puede autorizar sin problemas las solicitudes en entornos de desarrollo y producción. Para más información sobre Azure Active Directory, consulte el @azure/identity archivo Léame.

Por ejemplo, puede usar DefaultAzureCredential para construir un cliente que se autenticará mediante Azure Active Directory:

const { EventGridClient } = require("@azure/eventgrid-namespaces");
const { DefaultAzureCredential } = require("@azure/identity");

const client = new EventGridClient(
  "<endpoint>",
  new DefaultAzureCredential()
);

Conceptos clave

EventGridNamespacesClient

EventGridNamespacesClient se usa para enviar eventos a una instancia de Event Grid. Puede inicializarlo como:

const client = new EventGridClient(
  "<endpoint>",
  new AzureKeyCredential("<API Key>")
);

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 send operación. Además, al enviar eventos mediante el esquema Cloud Events 1.0, el SDK agregará metadatos de seguimiento distribuidos a los eventos mediante la extensión De seguimiento distribuido. Los valores de las propiedades de extensión traceparent y tracestate corresponden a los traceparent encabezados y tracestate de la solicitud HTTP que envía los eventos. Si un evento ya tiene una traceparent propiedad de extensión, 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 { EventGridClient, AzureKeyCredential } = require("@azure/eventgrid-namespaces");

const client = new EventGridClient(
  "<endpoint>",
  new AzureKeyCredential("<API key>")
);

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.publishCloudEvent(cloudEvent, topicName);

Solución de problemas

Registro

La habilitación del registro puede ayudar a descubrir información útil sobre los 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 @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 de ejemplos para obtener ejemplos detallados sobre cómo usar esta biblioteca.

Contribuciones

Si desea contribuir a esta biblioteca, lea la guía de contribución para obtener más información sobre cómo compilar y probar el código.

Impresiones