- Использование Google Cloud Storage и Cloud Run для CDN — часть 2
- Вторая статья о том, как создать CDN с помощью Google Cloud Storage и Cloud Run. В ней описывается, как оптимизировать передачу изображений и текстовых файлов, а также как снизить задержку, распространив ресурсы по 8 регионам мира.
Текст, переведенный ИИ.
Оптимизация и синхронизация изображений с помощью Google Cloud Storage и Cloud Run — Часть 3
Резюме публикации от ИИ durumis
- В статье описывается, как оптимизировать изображения, загруженные в Google Cloud Storage, с помощью Cloud Run и преобразовывать их в различные форматы.
- Используя события загрузки и удаления файлов в Cloud Storage, мы преобразуем файлы изображений в форматы AVIF, WebP, а текстовые файлы — в сжатый формат, и синхронизируем их копирование и удаление в другие регионы.
- Это позволяет эффективно управлять оптимизацией изображений и синхронизацией файлов в среде CDN. В заключение мы кратко расскажем о последующих действиях с использованием Google Cloud Load Balancer.
В предыдущей статье мы обсуждали отправку файлов изображений, синхронизированных с GCS, с использованием Cloud Run.
Итак, в заключительной части серии статей о CDN мы поговорим о синхронизации GCS и оптимизации изображений.
Cloud Run по умолчанию работает через HTTP Hook, но это не единственный триггер событий.
Cloud Run
При настройке Cloud Run вы увидите раздел «Trigger» (Триггер), где в списке доступны Pub/Sub, Cloud Storage, Filestore и другие. Помимо предоставляемого по умолчанию HTTP, остальные — наиболее часто используемые продукты, а остальные события, которые вы можете себе представить, попадают в категорию «Другие». Давайте выберем событие Cloud Storage, которое нам нужно, и перейдем в него. Там мы увидим типы событий, такие как изменение файла, удаление файла, создание файла, изменение метаданных файла и т.д.
Cloud Run Eventarc
Здесь, используя два события: deleted и finalized, мы создадим Cloud Run для обработки событий загрузки и удаления файлов в GCS.
В Cloud Run нам нужно будет обработать следующее:
- При загрузке файла мы проверяем его тип и выполняем следующие действия:
- Если это текстовый файл (css, js), мы сжимаем его с помощью br и gzip и создаем новый файл.
- Если это файл изображения, мы используем библиотеку sharp npm для преобразования в форматы avif и webp.
- Созданный новый файл копируется в другие заданные «регионы».
- При запросе на удаление файла удаляется соответствующий файл в других регионах.
В целом, если правильно обработать эти три основных действия (преобразование, копирование, удаление), синхронизация файлов не будет сложной задачей, даже если у вас несколько регионов. В коде для этого достаточно использовать всего два npm-пакета: для подключения к GCS и для работы с sharp, что значительно упрощает процесс.
На этом мы завершаем базовую серию статей о CDN.
В следующих статьях мы рассмотрим GCLB (Google Cloud Loadbalancer).
В контексте CDN, конечно, необходимо рассматривать балансировщики нагрузки (LB), но в этой серии статей некоторые аспекты были опущены. Мы планируем подробно рассмотреть их в будущих публикациях.
Спасибо за внимание.