Partilhar via


Biblioteca de cliente espaços de nomes do Azure Event Grid para JavaScript – versão 1.0.0

O Azure Event Grid é um serviço baseado na cloud que fornece uma entrega fiável de eventos em grande escala.

Utilizar a biblioteca de cliente para Enviar eventos para Espaços de Nomes do Event Grid

Ligações principais:

Introdução

Ambientes atualmente suportados

Veja a nossa política de suporte para obter mais detalhes.

Pré-requisitos

Se utilizar a CLI do Azure, substitua <your-resource-group-name> e <your-resource-name> pelos seus próprios nomes exclusivos:

Criar um Tópico do Event Grid

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

Criar um Domínio do Event Grid

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 espaços de nomes do Azure Event Grid para JavaScript com npm:

npm install @azure/eventgrid-namespaces

Criar e autenticar clientes do Espaço de Nomes

Para criar um objeto de cliente para aceder à API espaços de nomes do Event Grid, precisará do endpoint tópico do Event Grid e de um credential. Os clientes dos Espaços de Nomes do Event Grid podem utilizar uma Chave de Acesso.

Pode encontrar o ponto final do tópico do Event Grid no Portal do Azure ou através do fragmento da CLI do Azure abaixo:

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

Utilizar uma Chave de Acesso

Utilize o Portal do Azure para navegar para o recurso do Event Grid e obter uma Chave de Acesso ou utilize o fragmento da CLI do Azure abaixo:

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

Assim que tiver uma chave de API e um ponto final, pode utilizar a AzureKeyCredential classe para autenticar o cliente da seguinte forma:

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 Active Directory (Azure AD) para autenticação baseada em identidade de pedidos. Com o Azure AD, pode utilizar o controlo de acesso baseado em funções (RBAC) para conceder acesso aos recursos do Azure Event Grid a utilizadores, grupos ou aplicações.

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 @azure/identity pacote, pode autorizar pedidos de forma totalmente integrada em ambientes de desenvolvimento e produção. Para saber mais sobre o Azure Active Directory, veja o @azure/identity README.

Por exemplo, a utilização pode ser utilizada DefaultAzureCredential para construir um cliente que se autenticará com o 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>"
);

Conceitos-chave

Enviar e Receber Eventos

EventGridSenderClient pode ser utilizado para enviar eventos para um Event Grid. Pode inicializá-lo como:

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

EventGridReceiverClient pode ser utilizado para receber eventos de um Event Grid. Pode inicializá-lo como:

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

Rastreio Distribuído e Eventos na Cloud

Esta biblioteca suporta o rastreio distribuído com @azure/core-tracing. Ao utilizar o rastreio distribuído, esta biblioteca irá criar um intervalo durante uma send operação. Além disso, ao enviar eventos com o esquema Cloud Events 1.0, o SDK adicionará metadados de rastreio distribuídos aos eventos com a extensão Rastreio Distribuído. Os valores das propriedades e tracestate da traceparent extensão correspondem aos traceparent cabeçalhos e tracestate do pedido HTTP que envia os eventos. Se um evento já tiver uma traceparent propriedade de extensão, não será atualizado.

Event Grid no Kubernetes

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

Exemplos

Publicar um Evento num Tópico do 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);

Resolução de problemas

Registo

Ativar o registo pode ajudar a descobrir informações úteis sobre falhas. Para ver um registo de pedidos HTTP e respostas, defina a variável de AZURE_LOG_LEVEL ambiente como info. Em alternativa, o registo pode ser ativado no runtime ao chamar setLogLevel no @azure/logger:

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

setLogLevel("info");

Para obter instruções mais detalhadas sobre como ativar os registos, pode ver os documentos do pacote de @azure/logger.

Passos seguintes

Veja o diretório de exemplos para obter exemplos detalhados sobre como utilizar esta biblioteca.

Contribuir

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

Impressões