Как я могу использовать хранилище ведро для обслуживания статических файлов в среде движка google flex / app?

У меня есть компонент nodejs и внешний интерфейс. Я использую среду gcloud flex (движок приложения) и хочу обслуживать все файлы frontend с помощью CDN. Я бы не хотел, чтобы запросы касались моего узла nodejs. Я не могу настроить мои проекты app.yaml, чтобы сделать то же самое.

Я подозреваю, что мои запросы не подаются из CDN, потому что, если я прокомментирую приведенную ниже строку в моем коде nodejs, я больше не могу обращаться к index.html.

app.use('/', express.static(path.resolve('./frontend/dist'))); 

Ниже представлен файл YAML.

 handlers: - url: /(.*\.html) mime_type: text/html static_files: frontend/dist/\1 upload: frontend/dist/(.*\.html) - url: /styles/(.*\.css) mime_type: text/css static_files: frontend/dist/styles/\1 upload: frontend/dist/styles/(.*\.css) - url: /scripts/(.*\.js) mime_type: text/javascript static_files: frontend/dist/scripts/\1 upload: frontend/dist/scripts/(.*\.js) - url: /images/(.*\.(bmp|gif|ico|jpeg|jpg|png)) static_files: frontend/dist/images/\1 upload: frontend/dist/images/(.*\.(bmp|gif|ico|jpeg|jpg|png)) - url: / static_files: frontend/dist/index.html upload: frontend/dist/index.html - url: /.* script: IGNORED secure: always 

Есть ли способ настроить механизм приложения так, чтобы статические запросы на файлы не реагировали на мои серверные серверы nodejs?

Спасибо

Вы смешиваете стандартные элементы GAE env app.yaml (конфигурацию статического содержимого) в приложении flex env app.yaml .

Обслуживание статического контента в среде flex отличается.

Ваш метод express.static для обслуживания статических файлов фактически соответствует сервису из вашего приложения :

Обслуживание из вашей заявки

Большинство веб-фреймворков include поддержку для обслуживания статических файлов. В этом примере приложение использует промежуточное программное обеспечение ./public для ./public файлов из каталога ./public в /static URL.

Чтобы обслуживать статический контент без запросов, поражающих ваше приложение, вам необходимо следить за службой из облачного хранилища :

Пример обслуживания статических файлов из ведра Cloud Storage

Этот простой пример создает ведро Cloud Storage и загружает статические ресурсы с помощью Cloud SDK:

  1. Создайте ведро. Это общее, но не обязательное, имя вашего ковша после вашего идентификатора проекта. Имя ведра должно быть глобально уникальным.

     gsutil mb gs:// 
  2. Установите ACL для предоставления доступа к чтению элементов в ведре.

     gsutil defacl set public-read gs:// 
  3. Загрузите элементы в ведро. Команда rsync обычно является самым быстрым и простым способом загрузки и обновления активов. Вы также можете использовать cp.

     gsutil -m rsync -r ./static gs:///static 

Теперь вы можете получить доступ к своим статическим активам с помощью https://storage.googleapis.com//static/....

Подробнее о том, как использовать Cloud Storage для обслуживания статических ресурсов, в том числе о том, как обслуживать пользовательское доменное имя, см. В разделе « Как разместить статический веб-сайт» .

Дополнительные сведения о том, как использовать Cloud Storage API для динамической загрузки, загрузки и управления файлами из приложения, см. В разделе Использование облачного хранилища .