Создание Telegram-бота без написания кода с помощью n8n и Container Apps
В этой лабораторной работе вы развернете платформу для создания рабочих процессов без написания кода и создадите Telegram-бота, который будет повторять сообщения пользователя.
Для развертывания вы будете использовать следующие сервисы:
-
Artifact Registry — cервис для хранения, совместного использования и управления Docker-образами и Helm-чартами.
-
Container Apps — сервис для запуска контейнерных приложений в облаке, не требует знания Kubernetes и создания виртуальных машин.
-
n8n — платформа с открытым кодом для автоматизации рабочих процессов и интеграции сервисов.
-
Object Storage — сервис для хранения данных любого типа и объема, будет использоваться в качестве постоянного хранилища для запущенного контейнера.
Шаги:
Перед началом работы
Если вы уже зарегистрированы, войдите под своей учетной записью.
1. Подготовьте среду
Подготовьте среду, если не сделали этого ранее.
2. Скачайте публичный образ на локальный компьютер
Выполните в любом удобном терминале команду скачивания образа:
docker pull docker.n8n.io/n8nio/n8n:1.86.0 --platform linux/amd64
Где:
-
docker.n8n.io/n8nio/n8n:1.86.0 — публичный образ, который нужно скачать.
-
platform linux/amd64 — флаг указывает, что образ должен быть собран для платформы linux/amd64. Это требуется для создания контейнера.
3. Загрузите образ контейнера в Artifact Registry
-
Присвойте образу тег, который вы скачали на шаге 2:
docker tag docker.n8n.io/n8nio/n8n:1.86.0 <registry_name>.cr.cloud.ru/n8n:1.86.0Где <registry_name> — название реестра в Artifact Registry. Используйте реестр, созданный на этапе подготовки среды.
-
Загрузите образ в Artifact Registry:
docker push <registry_name>.cr.cloud.ru/n8n:1.86.0Где <registry_name> — название реестра в Artifact Registry. Используйте реестр, созданный на этапе подготовки среды.
Убедитесь, что в личном кабинете на странице созданного ранее реестра в сервисе Artifact Registry:
-
отображается созданный вами реестр артефактов;
-
в созданном реестре отображается репозиторий n8n;
-
в репозитории n8n отображается образ с тегом 1.86.0.

4. Создайте бакет в сервисе Object Storage
В сервисе Object Storage создайте новый бакет со следующими параметрами:
-
Название — <your_name>-n8n, например name-n8n.
-
Доменное имя — <your_name>-n8n, например name-n8n.
-
Класс хранения по умолчанию — Стандартный.
-
Максимальный размер — отключите или укажите на свое усмотрение.
Убедитесь, что в личном кабинете на странице сервиса Object Storage:
в списке бакетов отображается созданный вами бакет;
класс хранения созданного бакета — Стандартный.
5. Запустите контейнер с образом n8n
В личном кабинете создайте контейнер n8n из образа с помощью Container Apps:
-
Перейдите на страницу сервиса Container Apps и нажмите Создать.
-
Укажите Название создаваемого Container App, например container-app-n8n-name.
-
На вкладке Общие параметры укажите параметры создаваемого контейнера:
-
Название контейнера, например n8n-container.
-
URI образа — выберите загруженный ранее образ n8n с помощью кнопки Выбрать образ.
-
Порт контейнера — укажите 5678.
-
-
На вкладке Переменные добавьте следующие переменные и значения:
-
Ключ — N8N_PROTOCOL, Значение — https.
-
Ключ — N8N_HOST, Значение — <container_app_name>.containerapps.ru, например container-app-n8n-name.containerapps.ru.
-
Ключ — WEBHOOK_URL, Значение — https://<container_app_name>.containerapps.ru, например https://container-app-n8n-name.containerapps.ru.
-
Ключ — GENERIC_TIMEZONE, Значение — Europe/Moscow или другая временная зона.
-
-
На вкладке Тома создайте новый том со следующими параметрами:
-
Тип — Постоянный.
-
Название — например n8n-volume.
-
Бакет из Object Storage — выберите бакет сервиса Object Storage, который вы создали на шаге 4.
-
Путь (path) — /home/node/.n8n.
-
-
Нажмите Следующий шаг.
-
В поле Мин. кол-во экземпляров укажите значение 1.
-
Нажмите Создать.
-
Убедитесь, что в личном кабинете на странице созданного Container App:
-
отображается одна ревизия;
-
статус ревизии — «Создается».
-
-
Дождитесь, когда статус ревизии изменится на «Выполняется».

6. Зарегистрируйте бота в Telegram
Для работы вам потребуется зарегистрировать нового бота в Telegram и получить токен для него.
-
В Telegram найдите бота BotFather.
-
Выполните команду /newbot.
-
Задайте для бота имя (name) и имя пользователя (username).
Имя пользователя должно оканчиваться на Bot или _bot.
В нашем случае:
-
name: new-bot
-
username: nocodelabbot
-
В результате вы получите токен. Сохраните его — он потребуется на следующих этапах.
Токен является секретом. Не публикуйте его и не передавайте третьим лицам.
7. Запустите n8n
Со страницы созданного на шаге 5 Container App:
-
Нажмите на публичный URL.
Откроется интерфейс сервиса n8n с формой регистрации нового пользователя.
-
Заполните поля формы регистрации и нажмите Next.
-
В следующих окнах нажмите Get Started и Skip.
После регистрации в n8n вы будете перенаправлены в веб-интерфейс n8n.
8. Настройте параметры подключения к Telegram
В личном кабинете n8n создайте и настройте учетные данные для подключения к Telegram:
-
В правом верхнем углу личного кабинета раскройте меню Create Workflow и выберите Create Credentials.
-
В следующем окне в качестве типа создаваемой учетной записи выберите Telegram API и нажмите Continue.
Откроется диалоговое окно создания учетной записи.
-
В поле Access Token вставьте токен бота, полученный на шаге 6.
-
В правом верхнем углу диалогового окна нажмите Save.
-
Дождитесь, когда вверху окна появится подтверждение об успешном тестовом подключении, и закройте диалоговое окно.
9. Создайте триггер Telegram в n8n
В личном кабинете n8n создайте триггер для Telegram-бота:
-
В правом верхнем углу личного кабинета нажмите Create Workflow.
-
В центре рабочей области My workflow нажмите Add first step.
-
На вкладке выбора триггеров в поле поиска введите telegram и выберите Telegram в результатах поиска.
-
В появившемся списке выберите On message.
-
В открывшемся диалоговом окне убедитесь, что в поле Credential to connect with выбрана учетная запись, созданная на шаге 8.
-
Чтобы закрыть диалоговое окно, в левом верхнем углу интерфейса нажмите Back to canvas.
В центре рабочей области появится блок Telegram Trigger с новым триггером.
-
Нажмите дважды на добавленный триггер.
-
В открывшемся окне свойств триггера нажмите Test step.
Слева появится всплывающее уведомление о том, что n8n отслеживает сообщения, отправленные в Telegram-бота.
-
Отправьте любое сообщение в Telegram-бота.
После этого на странице триггера в секции Output появятся данные отправленного сообщения.

10. Добавьте в чат статус «… печатает / … typing»
-
Нажмите Back to canvas.
-
Нажмите + справа от стартового триггера.
-
На вкладке выбора триггеров введите в поле поиска telegram и выберите Telegram в результатах поиска.
-
В появившемся списке выберите Send a chat action.
-
В открывшемся диалоговом окне убедитесь, что:
-
в поле Credential to connect with выбрана учетная запись, которую вы создали на шаге 8;
-
в левой области окна отображены параметры, которые вы получили на шаге 9 для стартового триггера, после того как нажали Test step.
Если вы не видите этих данных, то нажмите Back to canvas, повторно откройте стартовый триггер и протестируйте шаг.
-
-
Перетащите параметр message | chat | id в поле Chat ID.
-
Нажмите Test step.
В правой части окна отобразится результат выполнения true.
11. Настройте ответ пользователю от бота
В рамках лабораторной работы настройте бота, чтобы он отправлял текст сообщения пользователя обратно:
-
Нажмите Back to canvas.
-
Нажмите + справа от созданного на предыдущем шаге действия Send a chat action.
-
В открывшейся справа вкладке вновь найдите и выберите Telegram.
-
В списке Actions выберите Send a text message.
-
В открывшемся диалоговом окне введите параметры:
-
Chat ID — укажите {{ $node["Telegram Trigger"].json["message"]["chat"]["id"] }};
-
Text — укажите {{ $node["Telegram Trigger"].json["message"]["text"] }}.
-
-
Чтобы вернуться к рабочей области, в левом верхнем углу нажмите Back to canvas.
-
В верхней строке нажмите Save.
-
В верхней строке активируйте бот.
Созданный вами Telegram-бот активирован.
12. Убедитесь, что бот работает
Отправьте в Telegram любое сообщение боту. Бот должен прислать обратно ваше сообщение.

Что дальше
В этой лабораторной работе вы развернули платформу для создания рабочих процессов без написания кода в сервисе Container Apps и создали с ее помощью Telegram-бота.
Дальше вы можете:
-
настроить логику работы бота с помощью действий, доступных в n8n;
Узнавайте больше о работе с сервисами и получайте практические навыки управления облаком, выполняя лабораторные работы.
- Перед началом работы
- 1. Подготовьте среду
- 2. Скачайте публичный образ на локальный компьютер
- 3. Загрузите образ контейнера в Artifact Registry
- 4. Создайте бакет в сервисе Object Storage
- 5. Запустите контейнер с образом n8n
- 6. Зарегистрируйте бота в Telegram
- 7. Запустите n8n
- 8. Настройте параметры подключения к Telegram
- 9. Создайте триггер Telegram в n8n
- 10. Добавьте в чат статус «… печатает / … typing»
- 11. Настройте ответ пользователю от бота
- 12. Убедитесь, что бот работает
- Что дальше