Задача

Необходимо создать скрипт (Google Apps Script), который при нажатии на кнопку будет выполнять синхронизацию настроек доменов из Google-таблицы с аккаунтом Cloudflare.

Исходные данные (таблица)

  • B1: Содержит текущий активный домен, на который будут вести все редиректы.
  • Cписок доменов (строки ниже): Каждый домен имеет поля: домен, IP-адрес, статус Proxy (ON/OFF), дата.

Функционал скрипта

При активации кнопки, скрипт должен выполнить следующие действия для каждого домена из списка:

  • 1. Проверка активного домена: Взять значение из ячейки B1.
  • 2. Работа с DNS: Для каждой записи в Cloudflare:
    • Создать или обновить A-запись (указать из таблицы целевой IP).
    • Включить или выключить сервис Cloudflare Proxy (Orange Cloud) в соответствии с полем ‘Proxy’.
  • 3. Работа с правилами (301 редирект):
    • Для каждого домена (кроме активного) настроить правило редиректа или создать Page Rule, перенаправляющее посетителя на активный домен (из B1).
    • Редирект должен сохранять оригинальный путь и GET-параметры ссылки.

Требования к логике и защита от ошибок

Валидация входных данных

Скрипт должен проверять введенные данные. При ошибке в ячейку выводить ‘ERROR’ с указанием причины:

  • Пустой домен.
  • Некорректный формат домена.
  • Пустой или неверный IP-адрес.
  • Значение Proxy отличается от 'ON' или 'OFF'.
  • Активный домен (B1) не заполнен.

Обработка ошибок Cloudflare API

  • Зона для домена не найдена в аккаунте движка Cloudflare.
  • Отсутствие доступа у API-токена (недостаточно прав).
  • Превышение лимита API запросов (Rate Limit).
  • Конфликт с существующими DNS-записями или правилами редиректа.
  • Ошибка сети (таймаут, потеря соединения).
  • Любая из перечисленных ошибок должна обрабатываться корректно с записью статуса в таблицу.

Оптимизация и безопасность

  • Не создавать дубликаты DNS-записей. Искать существующую и обновлять её.
  • Не плодить Page Rules. Обновлять существующее правило редиректа, если оно уже задано для данного домена.
  • Минимизировать количество обращений к API (запрашивать полный список зон/записей, а потом выполнять точечные правки).

Создание 6 иллюстраций для бренда

Нужно разработать 6 уникальных графических изображений в смешанном стиле: объединить элементы разных визуальных референсов, но сохранить концепцию гибридного исполнения. Обязательно предоставит портфолио аналогичных работ.