Клиентская библиотека пространств имен Сетки событий Azure для JavaScript версии 1.0.0
Сетка событий Azure — это облачная служба, которая обеспечивает надежную доставку событий в большом масштабе.
Использование клиентской библиотеки для отправки событий в пространства имен Сетки событий
Основные ссылки:
Начало работы
Поддерживаемые в настоящее время среды
- LTS версии Node.js
- Последние версии Safari, Chrome, Edge и Firefox.
Чтобы получить дополнительные сведения, ознакомьтесь с нашей политикой поддержки.
Предварительные требования
- Подписка Azure.
- Существующий раздел или домен Сетки событий . Если вам нужно создать ресурс, можно использовать портал Azure или Azure CLI.
Если вы используете Azure CLI, замените <your-resource-group-name>
и <your-resource-name>
собственными уникальными именами:
Создайте раздел Сетки событий.
az eventgrid topic create --location <location> --resource-group <your-resource-group-name> --name <your-resource-name>
создать Домен в Сетке событий;
az eventgrid domain create --location <location> --resource-group <your-resource-group-name> --name <your-resource-name>
Установите пакет @azure/eventgrid-namespaces
.
Установите клиентскую библиотеку пространств имен Сетки событий Azure для JavaScript с помощью npm
:
npm install @azure/eventgrid-namespaces
Создание и проверка подлинности клиентов пространства имен
Чтобы создать клиентский объект для доступа к API пространств имен Сетки событий, вам потребуется endpoint
раздел Сетки событий и credential
. Клиенты пространств имен Сетки событий могут использовать ключ доступа.
Конечную точку для раздела Сетки событий можно найти на портале Azure или с помощью следующего фрагмента кода Azure CLI :
az eventgrid topic show --name <your-resource-name> --resource-group <your-resource-group-name> --query "endpoint"
Использование ключа доступа
Используйте портал Azure , чтобы перейти к ресурсу Сетки событий и получить ключ доступа, или используйте приведенный ниже фрагмент кода Azure CLI :
az eventgrid topic key list --resource-group <your-resource-group-name> --name <your-event-grid-topic-name>
Получив ключ API и конечную точку AzureKeyCredential
, вы можете использовать класс для проверки подлинности клиента следующим образом:
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>")
);
Azure EventGrid обеспечивает интеграцию с Azure Active Directory (Azure AD) для проверки подлинности запросов на основе удостоверений. С помощью Azure AD можно использовать управление доступом на основе ролей (RBAC), чтобы предоставить пользователям, группам или приложениям доступ к ресурсам Сетки событий Azure.
Чтобы отправлять события в раздел или домен с TokenCredential
, удостоверению, прошедшему проверку подлинности, должна быть назначена роль "Отправитель данных EventGrid".
@azure/identity
С помощью пакета можно легко авторизовать запросы как в среде разработки, так и в рабочей среде. Дополнительные сведения об Azure Active Directory см. в файле сведений@azure/identity
.
Например, use может использовать DefaultAzureCredential
для создания клиента, который будет проходить проверку подлинности с помощью 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>"
);
Основные понятия
Отправка и получение событий
EventGridSenderClient
может использоваться для отправки событий в Сетку событий. Его можно инициализировать следующим образом:
const eventGridSenderClient = new EventGridSenderClient(
"<endpoint>",
new AzureKeyCredential("<API Key>"),
"<topicName>"
);
EventGridReceiverClient
может использоваться для получения событий из Сетки событий. Его можно инициализировать следующим образом:
const eventGridReceiverClient = new EventGridReceiverClient(
"<endpoint>",
new AzureKeyCredential("<API Key>"),
"<topicName>",
"<subscriptionName>"
);
Распределенная трассировка и облачные события
Эта библиотека поддерживает распределенную трассировку с помощью @azure/core-tracing
. При использовании распределенной трассировки эта библиотека создает диапазон во время send
операции. Кроме того, при отправке событий с помощью схемы Облачные события 1.0 пакет SDK добавит метаданные распределенной трассировки к событиям с помощью расширения распределенной трассировки. Значения свойств traceparent
расширения и tracestate
соответствуют заголовкам traceparent
и tracestate
из HTTP-запроса, который отправляет события. Если событие уже имеет traceparent
свойство расширения, оно не обновляется.
Сетка событий в Kubernetes
Эта библиотека была протестирована и проверена в Kubernetes с помощью Azure Arc.
Примеры
Публикация события в разделе Сетки событий
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);
Устранение неполадок
Ведение журнала
Включение ведения журнала может помочь выявить полезные сведения о сбоях. Чтобы просмотреть журнал HTTP-запросов и ответов, задайте для переменной среды AZURE_LOG_LEVEL
значение info
. Кроме того, ведение журнала можно включить во время выполнения, вызвав setLogLevel
в @azure/logger
:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Более подробные инструкции по включению журналов см. в документации по пакету @azure и средства ведения журнала.
Дальнейшие действия
Подробные примеры использования этой библиотеки см. в каталоге примеров .
Участие
Если вы хотите вносить изменения в эту библиотеку, ознакомьтесь с руководством по внесению изменений, в котором содержатся сведения о создании и тестировании кода.
Связанные проекты
Azure SDK for JavaScript