Я пытаюсь отправить трафик из Балансировщик нагрузки Google Cloud (LB) прямо в Облачная функция.
Функция My Cloud имеет HTTP URL trigger
и если я нажимаю этот URL-адрес в браузере, он работает, поэтому все, что мне нужно, это правило балансировщика нагрузки для прокси-сервера этого URL-адреса.
Итак, настройка будет такой:
Load Balancer -> Cloud Function -> Cloud Storage
Однако, глядя на конфигурацию бэкэнда LB, кажется, что единственными разрешенными параметрами являются либо служба (например, виртуальная машина), либо сегмент (например, облачное хранилище):
снимок экрана конфигурации балансировщика нагрузки
Я что-то упустил или просто нет возможности отправить трафик напрямую из Cloud Load Balancer в Cloud Function?
Я считаю, что подход, описанный в вашем вопросе, - это то, что невозможно сделать. Насколько я понял, вы хотите обслуживать статический веб-сайт, и если какие-либо файлы будут переименованы / перемещены, вы хотите, чтобы облачная функция управляла маршрутизацией.
Помимо триггеров Http, облачные функции предлагают Триггер облачного хранилища, которые позволяют действовать в зависимости от поведения корзины облачного хранилища. Таким образом, всякий раз, когда происходит изменение в ведре, содержащем все статические файлы, вы можете действовать в соответствии с ним и использовать REST backendServices и / или правила пересылки для изменения конфигураций балансировщика нагрузки и настройки любого существующего статического файла (ов) для правильной маршрутизации и маршрутизации всех остальных URL-адресов в статический файл 301 по умолчанию.
Надеюсь это поможет.
Для будущих читателей с июля 2020 года балансировщик нагрузки HTTPS теперь может обрабатывать маршрутизацию к Cloud Function, Cloud Run и AppEngine. Смотрите ниже объявление от Google: