Partilhar via


Biblioteca de cliente de Namespaces da Grade de Eventos do Azure para JavaScript - versão 1.0.0

de Grade de Eventos do Azure é um serviço baseado em nuvem que fornece entrega confiável de eventos em grande escala.

Usar a biblioteca de cliente para enviar eventos para namespaces de grade de eventos

Ligações principais:

Primeiros passos

Ambientes atualmente suportados

Consulte o nosso de política de suporte para obter mais detalhes.

Pré-requisitos

  • Uma assinatura do Azure.
  • Uma Grade de Eventos existente Tópico ou Domínio. Se precisar criar o recurso, você pode usar o do Portal do Azure ou da CLI do Azure.

Se você usar a CLI do Azure, substitua <your-resource-group-name> e <your-resource-name> por seus próprios nomes exclusivos:

Criar um tópico da grade de eventos

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

Criar um domínio de grade de eventos

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

Instalar o pacote @azure/eventgrid-namespaces

Instale a biblioteca de cliente de Namespaces de Grade de Eventos do Azure para JavaScript com npm:

npm install @azure/eventgrid-namespaces

Criar e autenticar clientes de namespace

Para criar um objeto cliente para acessar a API de Namespaces de Grade de Eventos, você precisará do endpoint do tópico Grade de Eventos e de um credential. Os clientes de Namespaces de Grade de Eventos podem usar uma Chave de Acesso.

Você pode encontrar o ponto de extremidade para seu tópico de Grade de Eventos no do Portal do Azure ou usando o trecho de da CLI do Azure abaixo:

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

Usando uma chave de acesso

Use o do Portal do Azure para navegar até o recurso Grade de Eventos e recuperar uma Chave de Acesso ou use o trecho de da CLI do Azure abaixo:

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

Depois de ter uma chave de API e um ponto de extremidade, você pode usar a classe AzureKeyCredential para autenticar o cliente da seguinte maneira:

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>")
);

O Azure EventGrid fornece integração com o Azure Ative Directory (Azure AD) para autenticação baseada em identidade de solicitações. Com o Azure AD, você pode usar o RBAC (controle de acesso baseado em função) para conceder acesso aos recursos da Grade de Eventos do Azure a usuários, grupos ou aplicativos.

Para enviar eventos para um tópico ou domínio com um TokenCredential, a identidade autenticada deve ter a função "EventGrid Data Sender" atribuída.

Com o pacote @azure/identity, você pode autorizar perfeitamente solicitações em ambientes de desenvolvimento e produção. Para saber mais sobre o Azure Ative Directory, consulte o @azure/identity LEIA-ME.

Por exemplo, use pode usar DefaultAzureCredential para construir um cliente que será autenticado usando o Azure Ative 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>"
);

Conceitos-chave

Envio e Receção de Eventos

EventGridSenderClient pode ser usado para enviar eventos para uma Grade de Eventos. Você pode inicializá-lo como:

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

EventGridReceiverClient pode ser usado para receber eventos de uma Grade de Eventos. Você pode inicializá-lo como:

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

Rastreamento distribuído e eventos na nuvem

Esta biblioteca suporta rastreamento distribuído usando @azure/core-tracing. Ao usar o rastreamento distribuído, essa biblioteca criará uma extensão durante uma operação de send. Além disso, ao enviar eventos usando o esquema do Cloud Events 1.0, o SDK adicionará metadados de rastreamento distribuído aos eventos usando a extensão Distributed Tracing. Os valores para as propriedades de extensão traceparent e tracestate correspondem aos cabeçalhos traceparent e tracestate da solicitação HTTP que envia os eventos. Se um evento já tiver uma propriedade de extensão traceparent, ele não será atualizado.

Grade de eventos no Kubernetes

Esta biblioteca foi testada e validada no Kubernetes usando o Azure Arc.

Exemplos

Publicar um evento em um tópico da grade de eventos

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);

Solução de problemas

Registo

Habilitar o registro em log pode ajudar a descobrir informações úteis sobre falhas. Para ver um log de solicitações e respostas HTTP, defina a variável de ambiente AZURE_LOG_LEVEL como info. Como alternativa, o registro em log pode ser habilitado em tempo de execução chamando setLogLevel no @azure/logger:

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

setLogLevel("info");

Para obter instruções mais detalhadas sobre como ativar os logs, você pode consultar os documentos do pacote @azure/logger.

Próximos passos

Por favor, dê uma olhada no exemplos diretório para obter exemplos detalhados sobre como usar esta biblioteca.

Contribuição

Se você quiser contribuir para esta biblioteca, leia o guia de contribuição para saber mais sobre como criar e testar o código.

Impressões