Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Практические руководства
    • Все руководства
    • Сокращатель ссылок
    • Ввод данных в системы хранения
    • Хранение журналов работы приложения
    • Развертывание веб-приложения с использованием Java Servlet API
    • Разработка Slack-бота
    • Разработка Telegram-бота
    • Разработка пользовательской интеграции в API Gateway
    • Разработка CRUD API для сервиса фильмов
    • Построение пайплайна CI/CD в GitLab
    • Работа с API-шлюзом по протоколу WebSocket
    • Создание интерактивного serverless-приложения с использованием WebSocket
    • Автоматическое копирование объектов из одного бакета Object Storage в другой
    • Визуализация логов в Grafana с помощью плагина Cloud Logging
    • Канареечный релиз функции Cloud Functions
    • Интерактивная отладка функций Cloud Functions
    • Создание функции Node.js с помощью TypeScript
    • Запуск контейнерного приложения в Serverless Containers
    • Передача событий Yandex Cloud Postbox в Data Streams и их анализ с помощью DataLens
    • Использование API Gateway для настройки синтеза речи в SpeechKit
    • Подключение к YDB из функции Cloud Functions на Python
    • Подключение к базе данных YDB из функции Cloud Functions на Node.js
    • Защита API Gateway при помощи Smart Web Security
    • Развертывание веб-приложения с JWT-авторизацией в API Gateway и аутентификацией в Firebase
    • Автоматическая загрузка данных в Yandex SpeechSense с помощью Yandex Workflows
    • Настройка реагирования в Cloud Logging и Yandex Cloud Functions
    • Настройка интеграций Workflows с Tracker, YandexGPT и Yandex Cloud Postbox
    • Разработка функций в Functions Framework и их развертывание в Yandex Serverless Containers

В этой статье:

  • Перед началом работы
  • Необходимые платные ресурсы
  • Создайте API-шлюз
  • Установите соединение
  • Проверьте работу соединения
  • Как удалить созданные ресурсы
  1. Бессерверные технологии
  2. Работа с API-шлюзом по протоколу WebSocket

Работа с API-шлюзом по протоколу WebSocket

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 21 апреля 2025 г.
  • Перед началом работы
    • Необходимые платные ресурсы
  • Создайте API-шлюз
  • Установите соединение
  • Проверьте работу соединения
  • Как удалить созданные ресурсы

Чтобы установить соединение с API-шлюзом по протоколу WebSocket:

  1. Создайте API-шлюз.
  2. Установите соединение.
  3. Проверьте работу соединения.

Если созданные ресурсы больше не нужны, удалите их.

Перед началом работыПеред началом работы

Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:

  1. Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь.
  2. На странице Yandex Cloud Billing убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако.

Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака.

Подробнее об облаках и каталогах.

Необходимые платные ресурсыНеобходимые платные ресурсы

В стоимость ресурсов входит плата за количество запросов к API-шлюзу и исходящий трафик (см. тарифы Yandex API Gateway).

Создайте API-шлюзСоздайте API-шлюз

Консоль управления
  1. В консоли управления выберите каталог, в котором необходимо создать API-шлюз.

  2. В списке сервисов выберите API Gateway.

  3. Нажмите кнопку Создать API-шлюз.

  4. В поле Имя введите websocket.

  5. (Опционально) В поле Описание введите описание.

  6. В блок Спецификация добавьте спецификацию:

    openapi: 3.0.0
    info:
      title: Test API
      version: 1.0.0
    paths:
      /connections:
        x-yc-apigateway-websocket-message:
          summary: Get connection identifier
          operationId: getConnectionID
          parameters:
            - name: X-Yc-Apigateway-Websocket-Connection-Id
              in: header
              description: Websocket connection identifier
              required: true
              schema:
                type: string
          responses:
            '200':
              description: Connection identifier
              content:
                text/plain:
                  schema:
                    type: string
          x-yc-apigateway-integration:
            type: dummy
            http_code: 200
            http_headers:
              Content-Type: application/json
            content:
              text/plain: '{"connection_id":"{X-Yc-Apigateway-Websocket-Connection-Id}"}'
    
  7. Нажмите кнопку Создать.

Установите соединениеУстановите соединение

  1. Откройте терминал и установите утилиту wscat:

    npm install -g wscat
    
  2. Установите соединение с API-шлюзом. Вместо <домен_API-шлюза> укажите домен API-шлюза вида d5dm1lba80md********.i9******.apigw.yandexcloud.net:

    wscat -c wss://<домен_API-шлюза>/connections
    Connected (press CTRL+C to quit)
    
  3. Введите любое сообщение и нажмите Enter.

Сообщение отправится через установленное соединение в API-шлюз. API-шлюз вызовет интеграцию и отправит ответ — вы увидите его на экране. В ответе будет идентификатор установленного соединения:

> Hello!
< {"connection_id":"<идентификатор_соединения>"}

Проверьте работу соединенияПроверьте работу соединения

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

CLI

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

  1. Получите информацию об установленном соединении:

    yc serverless api-gateway websocket get <идентификатор_соединения>
    
  2. Отправьте сообщение на клиентскую сторону:

    yc serverless api-gateway websocket send <идентификатор_соединения> --data Hello!
    
  3. Закройте соединение:

    yc serverless api-gateway websocket disconnect <идентификатор_соединения>
    
  4. Перейдите в окно терминала с установленным соединением. Там должна отобразиться следующая информация:

    wscat -c wss://<домен_API-шлюза>/connections
    Connected (press CTRL+C to quit)
    > Hello!
    < {"connection_id":"<идентификатор_соединения>"}
    < Hello!
    Disconnected (code: 1000, reason: "")
    

    Где домен_API-шлюза — строка вида d5dm1lba80md********.i9******.apigw.yandexcloud.net.

Как удалить созданные ресурсыКак удалить созданные ресурсы

Чтобы перестать платить за созданные ресурсы, удалите API-шлюз.

Была ли статья полезна?

Предыдущая
Построение пайплайна CI/CD в GitLab
Следующая
Создание интерактивного serverless-приложения с использованием WebSocket
Проект Яндекса
© 2025 ООО «Яндекс.Облако»