Начало работы с EventRouter
Примечание
EventRouter находится на стадии Preview. Чтобы получить доступ, отправьте заявку
С помощью этой инструкции вы создадите очередь Message Queue и отправите в нее сообщение, которое через шину будет передано в функцию Cloud Functions.
Перед началом работы
Чтобы начать работать в Yandex Cloud:
- Войдите в консоль управления
. Если вы еще не зарегистрированы, перейдите в консоль управления и следуйте инструкциям. - На странице Биллинг
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его. - Если у вас еще нет каталога, создайте его.
Создайте сервисный аккаунт
- В консоли управления
выберите нужный каталог. - В списке сервисов выберите Identity and Access Management.
- Нажмите кнопку Создать сервисный аккаунт.
- Введите имя сервисного аккаунта:
sa-for-eventrouter
. - Нажмите кнопку
Добавить роль и выберите ролиfunctions.functionInvoker
,ymq.reader
иymq.writer
. - Нажмите кнопку Создать.
Создайте очередь
- В консоли управления
выберите сервис Message Queue. - Нажмите кнопку Создать очередь.
- Укажите имя очереди:
sample-queue
. - Выберите тип
Стандартная
. Не изменяйте другие настройки. - Нажмите кнопку Создать.
- Откройте созданную очередь.
- На вкладке Обзор в блоке Общая информация скопируйте URL и ARN очереди, они понадобятся позднее.
Создайте функцию
- В консоли управления
выберите сервис Cloud Functions. - Создайте функцию:
- В правом верхнем углу нажмите кнопку Создать функцию.
- Введите имя функции:
eventrouter-function
. - Нажмите кнопку Создать.
- Создайте версию функции:
- В открывшемся окне Редактор выберите
Node.js 18
. - Отключите опцию Добавить файлы с примерами кода.
- Нажмите кнопку Продолжить.
- Создайте файл
index.js
и добавьте в него следующий код:module.exports.handler = async function (event, context) { console.log(JSON.stringify(event)) return { statusCode: 200, body: "", }; };
- В блоке Параметры укажите в поле:
- Точка входа —
index.handler
; - Сервисный аккаунт —
sa-for-eventrouter
.
- Точка входа —
- Нажмите кнопку Сохранить изменения.
- В открывшемся окне Редактор выберите
Создайте шину
- В консоли управления
выберите сервис Serverless Integrations. - Перейдите на вкладку EventRouter.
- В правом верхнем углу нажмите Создать шину.
- Введите имя шины и нажмите Создать.
Создайте коннектор
- Выберите шину.
- Перейдите на вкладку Коннекторы.
- В правом верхнем углу нажмите Создать коннектор.
- В поле Источник выберите
Yandex Message Queue
. - В поле Очередь сообщений укажите ARN очереди.
- В поле Сервисный аккаунт укажите
sa-for-eventrouter
. - Нажмите кнопку Создать.
Создайте правило
- Выберите шину.
- Перейдите на вкладку Правила.
- В правом верхнем углу нажмите Создать правило.
- В блоке Приёмники нажмите кнопку Добавить.
- В поле Тип выберите
Yandex Cloud Functions
. - В поле Функция укажите
eventrouter-function
. - В поле Сервисный аккаунт укажите
sa-for-eventrouter
. - Нажмите кнопку Создать.
Отправьте сообщение в очередь
-
Установите
AWS CLI. -
Создайте статические ключи доступа для сервисного аккаунта
sa-for-eventrouter
. Надежно сохраните идентификатор и секретный ключ. После того, как вы закроете окно, параметры секретного ключа станут недоступны. -
Настройте AWS CLI:
-
Запустите интерактивную настройку профиля:
aws configure
-
Укажите полученный ранее идентификатор ключа сервисного аккаунта:
AWS Access Key ID [****************ver_]: <идентификатор_ключа_сервисного_аккаунта>
-
Укажите полученный ранее секретный ключ сервисного аккаунта:
AWS Secret Access Key [****************w5lb]: <секретный_ключ_сервисного_аккаунта>
-
Укажите имя региона по умолчанию
ru-central1
:Default region name [ru-central1]: ru-central1
-
Укажите формат выходных данных по умолчанию
json
:Default output format [None]: json
-
Чтобы посмотреть текущие настройки профиля, выполните команду:
aws configure list
Результат:
Name Value Type Location ---- ----- ---- -------- profile <not set> None None access_key ****************aBc1 shared-credentials-file secret_key ****************DeF2 shared-credentials-file region ru-central1 config-file ~/.aws/config
-
-
Отправьте сообщение в очередь
sample-queue
, используя сохраненный ранее URL очереди:aws sqs send-message \ --message-body "Hello World" \ --endpoint https://message-queue.api.cloud.yandex.net/ \ --queue-url <URL_очереди>
Результат:
{ "MD5OfMessageBody": "67e63db14341b5a696596634********", "MessageId": "765ff4d2-fa4bc83-6cfcc***-*****" }
Убедитесь, что функция вызвалась
- В консоли управления
выберите сервис Cloud Functions. - Выберите функцию
eventrouter-function
. - Перейдите на вкладку Логи. В логах должны отобразиться сообщения, которые вы отправили в очередь.