J'ai une application existante que j'essayais de déployer sur Google Cloud, mais l'application ne peut pas se connecter à un service NATS externe. Il semble que l'exécution du cloud ne prend en charge que http, websockets et gRPC pour les connexions et le trafic sortants. Il ne semble pas qu'une application puisse établir une connexion TCP / IP pure avec des données binaires d'une application exécutée dans le cloud.
Je cherche juste quelqu'un pour le confirmer. Je n'ai trouvé aucune documentation indiquant explicitement les limitations entrantes et sortantes du cloud run.
Remarque: mon application peut cependant se connecter à REDIS. Merci pour votre aide.
3 Réponses :
Depuis https://cloud.google.com/run/docs/issues:
Cloud Run (entièrement géré) ne prend actuellement pas en charge la diffusion HTTP. Par conséquent, les demandes entrantes avec des protocoles tels que WebSockets et le streaming gRPC ne sont pas prises en charge.
Les services Cloud Run (entièrement gérés) prennent en charge le gRPC unaire.
Pour les demandes sortantes, les WebSockets et gRPC sont pris en charge.
Ma question spécifique est; Une application cloud doit-elle pouvoir se connecter à un serveur NAT qui n'exécute pas cloud? Comme je l'ai dit, il peut se connecter à Redis, donc je sais qu'il peut se connecter à d'autres protocoles que WebSockers et gRPC
Oui, selon ce document , Cloud Run ne prend en charge que HTTP, WebSockets et gRPC par le moment, également ici est indiqué les http demandes non pris en charge, je vous suggère de créer une demande de fonctionnalité , si la pétition rapporte suffisamment de personnes popularité cette fonctionnalité peut être ajoutée à Cloud Run
Merci pour le lien vers la documentation, mais la documentation ne semble pas complète. Mon application cloud peut se connecter à Redis, ce qui prouve que les protocoles sortants autres que Web et gRPC sont pris en charge. Merci pour les suggestions sur l'ajout d'une demande de fonctionnalité, si la prise en charge des NAT à partir d'applications cloud se révèle non prise en charge, j'ajouterai une demande de fonctionnalité.
La documentation est suffisamment claire: "Cloud Run (entièrement géré) ne prend actuellement pas en charge le streaming HTTP. Par conséquent, les demandes entrantes avec des protocoles tels que WebSockets et le streaming gRPC ne sont pas prises en charge. Les services Cloud Run (entièrement gérés) prennent en charge le gRPC unaire. Pour les demandes sortantes, les deux Les WebSockets et gRPC sont pris en charge. " Afin de gagner du temps et d'éviter les erreurs dans la documentation utilisateur, expliquez clairement le fonctionnement de Cloud Run
Il n'y a pas de limitation de protocole sortant.
En termes de trafic entrant, Cloud Run ne prend en charge que HTTP / 1 et HTTP / 2 (qui inclut gRPC) sur TLS (HTTPS). Cela dit, le streaming serveur n'est pas pris en charge (par exemple, les websockets ou les appels gRPC en streaming).
Par conséquent, vous ne pouvez pas servir avec des protocoles TCP arbitraires sur Cloud Run.
Existe-t-il une documentation indiquant qu'il n'y a pas de limitation de protocole sortant?
La connexion à NATS à partir d'une application exécutée dans le cloud enfreindrait-elle les locataires sous-jacents pour une application exécutée dans le cloud? Serait-ce considéré comme une application en arrière-plan, car elle peut traiter des messages provenant de NAT qui ne passent pas par le front-end de Google?
Merci AhmetB pour l'information, il ne semble en effet pas y avoir de limitations de protocole sortant d'une application Cloud Run. Mon problème était que je devais mettre l'application Cloud Run et le conteneur de streaming nats dans le même VPC.
Je l'ai fait fonctionner, j'ai eu deux problèmes. Le premier était que j'avais déployé l'image nats et non l'image de streaming nats, et le deuxième problème était que le conteneur de streaming nats devait se trouver dans le même VPC que l'application d'exécution dans le cloud, puis cela a fonctionné. Vous pouvez donc vous connecter à un serveur NATS à partir d'une application Cloud Run.