Actualmente estoy trabajando en un proyecto en el que usamos Google Cloud. Dentro de la Nube estamos usando CloudRun para brindar nuestros servicios. Uno de estos servicios es bastante complejo y tiene muchas opciones de configuración diferentes. Para validar cómo estas configuraciones afectan la calidad de los resultados y también para evaluar la calidad de los cambios en el servicio, me gustaría proceder de la siguiente manera:
Esto me permite crear una evaluación detallada de las diferencias entre los dos servicios sin tener que proporcionar al usuario respuestas potencialmente peores.
Para la implementación, configuré un NGINX que refleja las solicitudes. Esto también se implementa como un servicio de CloudRun. Esto ahora acepta todas las solicitudes y se encarga de la autenticación. El servicio original y la versión reflejada se configuraron de tal manera que solo se puede acceder a ellos internamente y, por lo tanto, se debe acceder a través de una red de VPC.
He probado todas las combinaciones posibles para la configuración de estas piezas pero siempre obtengo errores 403 o 502.
Intenté configurar el servicio NGINX en las rutas HTTP y HTTPS del servicio y probé todas las configuraciones del conector VPC. Cuando configuro el ingreso del servicio a ALL , funciona perfectamente si configuro el servicio con HTTPS y el puerto 443 en NGINX. Tan pronto como configuro el ingreso a Internal , obtengo errores con HTTPS -> 403 y con HTTP -> 502.
¿Alguien tiene experiencia en este sentido y me puede dar consejos sobre cómo solucionar este problema? Estaría muy agradecido por cualquier ayuda.
Si su servicio de Cloud Run es accesible internamente (el control de ingreso está configurado solo como interno), debe realizar su solicitud desde su VPC.
Por lo tanto, como lo hizo perfectamente, conectó un conector de VPC sin servidor en su servicio NGINX.
La configuración es correcta. Ahora, ¿por qué funciona cuando enruta TODO el tráfico de salida y no solo el tráfico privado a su conector de VPC?
De hecho, Cloud Run es un recurso público, con una URL pública e incluso si configura la entrada como interna. Este parámetro dice "el tráfico debe llegar a la VPC" y no dice "Estoy conectado a la VPC con una IP privada".
Por lo tanto, para ir a su VPC y acceder a un recurso público (sus servicios de ejecución en la nube), debe enrutar TODO el tráfico a su VPC, incluso el público.