Поделиться через


Клиентская библиотека пространств имен Сетки событий Azure для JavaScript версии 1.0.0

Сетка событий Azure — это облачная служба, которая обеспечивает надежную доставку событий в большом масштабе.

Использование клиентской библиотеки для отправки событий в пространства имен Сетки событий

Основные ссылки:

Начало работы

Поддерживаемые в настоящее время среды

Чтобы получить дополнительные сведения, ознакомьтесь с нашей политикой поддержки.

Предварительные требования

Если вы используете 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 и средства ведения журнала.

Дальнейшие действия

Подробные примеры использования этой библиотеки см. в каталоге примеров .

Участие

Если вы хотите вносить изменения в эту библиотеку, ознакомьтесь с руководством по внесению изменений, в котором содержатся сведения о создании и тестировании кода.

Просмотры