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
- versões LTS do Node.js
- Versões mais recentes do Safari, Chrome, Edge e Firefox.
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.
Projetos relacionados
Azure SDK for JavaScript