Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex API Gateway
  • Начало работы
    • Все практические руководства
    • Развертывание веб-приложения с использованием Java Servlet API
    • Разработка навыка Алисы и сайта с авторизацией
    • Разработка Slack-бота
    • Разработка Telegram-бота
    • Разработка Telegram-бота для распознавания текста и аудио
    • Разработка пользовательской интеграции
    • Разработка CRUD API для сервиса фильмов
    • Работа с API-шлюзом по протоколу WebSocket
    • Создание интерактивного serverless-приложения с использованием WebSocket
    • Построение пайплайна CI/CD в GitLab с использованием serverless-продуктов
    • Интерактивная отладка функций Cloud Functions
    • Развертывание веб-приложения с JWT-авторизацией в API Gateway и аутентификацией в Firebase
    • Канареечный релиз функции Cloud Functions
    • Использование API Gateway для настройки синтеза речи в Yandex SpeechKit
    • Запуск контейнерного приложения в Yandex Serverless Containers
    • Сокращатель ссылок
    • Ввод данных в системы хранения
    • Защита API Gateway при помощи Smart Web Security
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

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

  • Подготовьте облако к работе
  • Необходимые платные ресурсы
  • Установите необходимые утилиты
  • Создайте сервисный аккаунт с правами администратора на облако
  • Разверните ресурсы
  • Запустите сервис отладки
  • Как удалить созданные ресурсы
  1. Практические руководства
  2. Интерактивная отладка функций Cloud Functions

Интерактивная отладка функций Yandex Cloud Functions

Статья создана
Vitaliy Potapov
Улучшена
Обновлена 21 апреля 2025 г.
  • Подготовьте облако к работе
    • Необходимые платные ресурсы
  • Установите необходимые утилиты
  • Создайте сервисный аккаунт с правами администратора на облако
  • Разверните ресурсы
  • Запустите сервис отладки
  • Как удалить созданные ресурсы

В этом руководстве вы настроите систему интерактивной отладки функций Yandex Cloud Functions с помощью перенаправления запросов на локальный сервер. Подробнее о схеме решения читайте в репозитории yc-serverless-live-debug.

Чтобы настроить систему интерактивной отладки функций:

  1. Подготовьте облако к работе.
  2. Установите необходимые утилиты.
  3. Создайте сервисный аккаунт с правами администратора на облако.
  4. Разверните ресурсы.
  5. Запустите сервис отладки.

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

Подготовьте облако к работеПодготовьте облако к работе

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

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

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

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

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

В стоимость поддержки инфраструктуры входят:

  • плата за вызовы функций и вычислительные ресурсы, выделенные для выполнения функций (см. тарифы Yandex Cloud Functions);
  • плата за количество запросов к API-шлюзу (см. тарифы Yandex API Gateway);
  • плата за операции с YDB и хранение данных (см. тарифы Yandex Managed Service for YDB);
  • плата за запись и хранение логов (см. тарифы Yandex Cloud Logging);

Установите необходимые утилитыУстановите необходимые утилиты

  1. Установите Terraform.

  2. Создайте папку live-debug-test и перейдите в нее:

    mkdir live-debug-test
    cd live-debug-test
    
  3. Установите пакет yc-serverless-live-debug:

    npm i -D @yandex-cloud/serverless-live-debug
    

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

  1. Создайте сервисный аккаунт:

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

    2. В списке сервисов выберите Identity and Access Management.

    3. Нажмите кнопку Создать сервисный аккаунт.

    4. Введите имя сервисного аккаунта, например sa-live-debug.

      Требования к формату имени:

      • длина — от 2 до 63 символов;
      • может содержать строчные буквы латинского алфавита, цифры и дефисы;
      • первый символ — буква, последний — не дефис.
    5. Нажмите кнопку Создать.

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

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

    Чтобы создать сервисный аккаунт, выполните команду:

    yc iam service-account create --name sa-live-debug
    

    Где --name — имя сервисного аккаунта в формате:

    • длина — от 2 до 63 символов;
    • может содержать строчные буквы латинского алфавита, цифры и дефисы;
    • первый символ — буква, последний — не дефис.

    Результат:

    id: ajehr0to1g8b********
    folder_id: b1gv87ssvu49********
    created_at: "2023-03-04T09:03:11.665153755Z"
    name: sa-live-debug
    

    Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

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

      resource "yandex_iam_service_account" "sa" {
        name        = "sa-live-debug"
        description = "<описание_сервисного_аккаунта>"
        folder_id   = "<идентификатор_каталога>"
      }
      

      Где:

      • name — имя сервисного аккаунта. Обязательный параметр.
      • description — описание сервисного аккаунта. Необязательный параметр.
      • folder_id — идентификатор каталога. Необязательный параметр. По умолчанию будет использовано значение, указанное в настройках провайдера.

      Более подробную информацию о параметрах ресурса yandex_iam_service_account в Terraform, см. в документации провайдера.

    2. Проверьте корректность конфигурационных файлов.

      1. В командной строке перейдите в папку, где вы создали конфигурационный файл.

      2. Выполните проверку с помощью команды:

        terraform plan
        

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

    3. Разверните облачные ресурсы.

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

        terraform apply
        

    Чтобы создать сервисный аккаунт, воспользуйтесь методом REST API create для ресурса ServiceAccount или вызовом gRPC API ServiceAccountService/Create.

  2. Назначьте сервисному аккаунту роль admin на облако:

    Консоль управления
    CLI
    Terraform
    API
    1. На стартовой странице консоли управления выберите облако.
    2. Перейдите на вкладку Права доступа.
    3. Найдите аккаунт sa-live-debug в списке и нажмите значок .
    4. Нажмите кнопку Изменить роли.
    5. В открывшемся окне нажмите кнопку Добавить роль и выберите роль admin.
    6. Нажмите кнопку Сохранить.

    Выполните команду:

    yc resource-manager cloud add-access-binding <идентификатор_облака> \
       --role admin \
       --subject serviceAccount:<идентификатор_сервисного_аккаунта>
    

    Результат:

    done (1s)
    
    1. Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:

      resource "yandex_resourcemanager_cloud_iam_member" "admin" {
        cloud_id = "<идентификатор_облака>"
        role     = "admin"
        member   = "serviceAccount:<идентификатор_сервисного_аккаунта>"
      }
      

      Где:

      • cloud_id — идентификатор облака. Обязательный параметр.
      • role — назначаемая роль. Обязательный параметр.
      • member — пользователь или сервисный аккаунт, которому назначается роль. Указывается в виде userAccount:<идентификатор_пользователя> или serviceAccount:<идентификатор_сервисного_аккаунта>. Обязательный параметр.

      Более подробную информацию о параметрах ресурса yandex_resourcemanager_folder_iam_member см. в документации провайдера.

    2. Проверьте корректность конфигурационных файлов.

      1. В командной строке перейдите в папку, где вы создали конфигурационный файл.

      2. Выполните проверку с помощью команды:

         terraform plan
        

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

    3. Разверните облачные ресурсы.

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

        terraform apply
        

    Чтобы назначить сервисному аккаунту роль на облако, воспользуйтесь методом REST API setAccessBindings для ресурса ServiceAccount или вызовом gRPC API ServiceAccountService/SetAccessBindings.

Разверните ресурсыРазверните ресурсы

  1. Настройте профиль CLI для выполнения операций от имени сервисного аккаунта:

    CLI
    1. Создайте авторизованный ключ для сервисного аккаунта и запишите его в файл:

      yc iam key create \
        --service-account-id <идентификатор_сервисного_аккаунта> \
        --folder-id <идентификатор_каталога> \
        --output key.json
      

      Где:

      • --service-account-id — идентификатор сервисного аккаунта sa-live-debug.
      • --folder-id — идентификатор каталога, в котором создан сервисный аккаунт.
      • --output — имя файла с авторизованным ключом.

      Результат:

      id: aje8nn871qo4********
      service_account_id: ajehr0to1g8********
      created_at: "2023-03-04T09:16:43.479156798Z"
      key_algorithm: RSA_2048
      
    2. Создайте профиль CLI для выполнения операций от имени сервисного аккаунта:

      yc config profile create sa-live-debug
      

      Результат:

      Profile 'sa-live-debug' created and activated
      
    3. Задайте конфигурацию профиля:

      yc config set service-account-key key.json
      yc config set cloud-id <идентификатор_облака>
      

      Где:

      • service-account-key — файл с авторизованным ключом сервисного аккаунта.
      • cloud-id — идентификатор облака.
    4. Добавьте аутентификационные данные в переменные окружения:

      export YC_TOKEN=$(yc iam create-token)
      export YC_CLOUD_ID=$(yc config get cloud-id)
      
  2. Разверните ресурсы в облаке, выполнив команду:

    npx serverless-live-debug deploy
    

    Команда создаст в облаке каталог live-debug и развернет в нем все необходимые ресурсы.

Запустите сервис отладкиЗапустите сервис отладки

  1. В папке live-debug-test создайте файл live-debug.config.ts:

    nano live-debug.config.ts
    
  2. Скопируйте в файл live-debug.config.ts код с конфигурацией:

    import { defineConfig } from '@yandex-cloud/serverless-live-debug';
    import { Handler } from '@yandex-cloud/function-types';
    
    export default defineConfig({
      handler: <Handler.Http>(event => {
        console.log('got request', event);
        return {
          statusCode: 200,
          body: `Hello from local code!`,
        };
      })
    });
    
  3. Запустите отладочный сервис, выполнив команду:

    npx serverless-live-debug run
    

    Результат:

    Using config: live-debug.config.ts
    Running local client...
    Starting child...
    Child started
    Watching changes in: live-debug.config.ts
    WS connection opened
    Local client ready.
    Check url: https://d5dm1lba80md********.i9******.apigw.yandexcloud.net
    Waiting requests...
    

    Где Check url — публичный адрес API-шлюза API Gateway.

  4. Проверьте, что отладочный код работает. Для этого откройте еще один терминал и выполните команду:

    curl https://d5dm1lba80md********.i9******.apigw.yandexcloud.net
    

    Результат:

    Hello from local code!
    

Подробнее о примерах использования решения читайте в репозитории yc-serverless-live-debug.

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

Удалите каталог, в котором находятся ресурсы, необходимые для интерактивной отладки функций Cloud Functions:

Консоль управления
API
  1. В консоли управления выберите каталог live-debug.
  2. Нажмите значок напротив каталога и выберите Удалить.
  3. В поле Срок удаления каталога выберите Удалить сейчас.
  4. Нажмите Удалить.

Чтобы удалить каталог, воспользуйтесь методом REST API delete для ресурса Folder или вызовом gRPC API FolderService/Delete.

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

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