Думаю, многие хотя бы раз сталкивались с ситуацией, когда для проекта нужно было реализовать совсем небольшой backend: отправку письма с формы обратной связи, обработку webhook, простое REST API или несколько строк серверной логики.

В большинстве случаев первым делом арендуют VPS, настраивают Node.js, nginx, HTTPS, деплой и окружение. Хотя для подобных задач это зачастую оказывается избыточным.

В таких случаях отличным решением становятся Google Cloud Functions — serverless‑сервис от Google, который позволяет написать небольшую функцию и сразу получить публичный HTTP endpoint. Вам не нужно поднимать собственный сервер, настраивать инфраструктуру или поддерживать её в дальнейшем — достаточно написать код, задеплоить функцию, и Google автоматически предоставит публичный URL для её вызова.

В этой статье разберём, как за несколько минут развернуть свою первую Google Cloud Function, автоматически деплоить её через GitHub Actions и использовать в качестве простого backend для сайта или любого другого проекта.

Интерфейс Google console
Интерфейс Google console

Интерфейс Google Cloud Console содержит большое количество сервисов и настроек, поэтому при первом знакомстве бывает непросто быстро найти нужные разделы. Поэтому в этой статье настройка будет выполнена с минимальным взаимодействием с Google Cloud Console.

Для удобства я подготовил репозиторий с готовым примером: простая Cloud Function, которая при обращении к HTTP endpoint отправляет письмо на указанную почту. Все необходимые настройки выполняются через GitHub CI, поэтому после первоначальной конфигурации достаточно изменять только Secrets и Variables, не возвращаясь в консоль Google Cloud.

Достаточно склонировать готовый репозиторий, заполнить Secrets и Variables и при необходимости заменить пример функции собственной логикой, здесь реализовано множество примеров использования.

Первичная настройка Google Cloud

Перед тем как перейти к GitHub, необходимо один раз выполнить минимальную настройку Google Cloud, у них есть собственная документация, и при желании всю настройку можно выполнить вручную через интерфейс Google Cloud Console. Но цель этой статьи — показать более удобный и воспроизводимый вариант: один раз подготовить проект, вынести настройки в GitHub Secrets и Variables, а дальше деплоить функцию автоматически через GitHub Actions

1. Создайте новый проект

Создайте новый Google Cloud Project и подключите платёжный аккаунт (Billing). Для большинства небольших проектов бесплатного лимита обычно достаточно, однако подключение Billing является обязательным условием для использования сервиса, новым пользователям Google обычно предоставляет стартовый кредит в размере до 300 долларов для знакомства с сервисами платформы.

2. Включите необходимые API

В разделе APIs & Services → Library включите следующие API:

  • Cloud Functions API

  • Cloud Run Admin API

  • Cloud Build API

  • Artifact Registry API

Включение API
Включение API

3. Создайте Service Account

IAM & Admin → Service Accounts

Создайте новый Service Account и выдайте ему необходимые роли, необходима минимум роль Security Admin, по мимо нее рекомендую выставить basic/Editor, которая предоставляет минимально необходимые возможности для деплоя.

Предоставление ролей и создание ключа
Предоставление ролей и создание ключа

4. Создайте JSON Key

Откройте созданный Service Account:(Изображение выше)

Keys → Add Key → Create New Key → JSON

JSON‑файл будет автоматически скачан на компьютер. Позже его содержимое потребуется добавить в GitHub Secrets, скопировав целиком

*Настройка Gmail

В текущей реализации для отправки уведомлений используется Gmail SMTP.

Для этого необходимо создать App Password для Google‑аккаунта, от имени которого будут отправляться письма. Для создания пароля приложения предварительно нужно включить двухэтапную аутентификацию (2-Step Verification) в аккаунте Google.

Создать пароль приложения можно здесь. После генерации сохраните полученный пароль — на следующем этапе он будет добавлен в GitHub Secrets вместе с адресом электронной почты( прописывать пароль в секретах нужно без пробелов)

После этого заполните GitHub Secrets и GitHub Variables.

В Secrets хранятся чувствительные данные:

  • JSON‑ключ сервисного аккаунта;

  • SMTP‑почта;

  • пароль приложения Gmail.

В Variables располагаются обычные настройки:

  • регион (europe-west1);

  • получатель письма;

  • тема;

  • текст уведомления.

Комментарии (2)


  1. k61n
    29.06.2026 14:54

    Выглядит достаточно просто. Но поднять контейнер на ВПСе тоже не сильно сложно.

    Я несколько лет назад писал питоньи скрипты для парсинга календаря через гугл апи. Я вообще уже много лет довольно стандартизированно пользуюсь календарём, поэтому он у меня очень, скажем так, парсинг-френдли.

    На стороне гугла что-то было оч замудрёная аутентификация, которая слетела через полгода-год, что я просто экспортировал свой гуглокалендарь и импортировал его в свой некстклауд. А с КалДав вообще проблем не было. Один раз написал абстракцию для аутентификации и работает годами.

    С тех пор я немного скептичен к гугл апи.


    1. stapenn Автор
      29.06.2026 14:54

      Ну да, с VPS тоже несложно, если он уже есть. Но в этом и идея, для совсем небольших задач можно вообще ничего не поднимать и не обслуживать. К тому же в небольших объёмах это ещё и бесплатно.