J'essaie d'envoyer le trafic d'un équilibreur de charge Google Cloud (LB) directement vers une fonction Cloud .

My Cloud Function a un HTTP URL triggeret si j'accède à cette URL à partir d'un navigateur, cela fonctionne, donc tout ce dont j'ai besoin est une règle sur l'équilibreur de charge pour proxy cette URL.

La configuration serait donc :

Load Balancer -> Cloud Function -> Cloud Storage

Cependant, en examinant la configuration du backend LB, il semble que les seules options autorisées soient soit un service (par exemple, une machine virtuelle) soit un seau (c'est-à-dire Cloud Storage) :

capture d'écran de la configuration de l'équilibreur de charge

Ai-je raté quelque chose ou n'y a-t-il tout simplement aucun moyen d'envoyer du trafic directement d'un équilibreur de charge cloud vers une fonction cloud ?

answer

Je crois que l'approche détaillée dans votre question est ce qui ne peut pas être fait. D'après ce que j'ai compris, vous cherchez à servir un site Web statique et si des fichiers sont renommés/déplacés, vous souhaitez que la fonction cloud gère le routage.

En plus des déclencheurs Http, les fonctions Cloud proposent le déclencheur Cloud Storage , qui vous permet d'agir en fonction du comportement du bucket de stockage Cloud. De cette façon, chaque fois qu'il ya un changement dans le seau contenant tous les fichiers statiques, vous pouvez agir selon et utiliser le reste backendServices et / ou forwardingRules pour modifier la charge des configurations Balancer et mettre en place un fichier statique existant (s) pour être acheminés correctement et acheminez toutes les autres URL vers un fichier statique 301 par défaut.

J'espère que cela t'aides.

Pour les futurs lecteurs, depuis juillet 2020, l'équilibreur de charge HTTPS peut désormais gérer le routage vers Cloud Function, Cloud Run et AppEngine. Voir ci-dessous l'annonce de Google :

https://cloud.google.com/blog/products/networking/better-load-balancing-for-app-engine-cloud-run-and-functions