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
- Versões LTS do Node.js
- Versões mais recentes do Safari, Chrome, Edge e Firefox.
Veja a nossa política de suporte para obter mais detalhes.
Pré-requisitos
- Uma subscrição do Azure.
- Um Tópico ou Domínio do Event Grid existente. Se precisar de criar o recurso, pode utilizar o Portal do Azure ou a CLI do Azure.
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.
Projetos relacionados
Azure SDK for JavaScript