Invoca con una solicitud HTTPS

Puedes enviar solicitudes HTTPS desde cualquier recurso apto para poder activar un servicio alojado en Cloud Run. Ten en cuenta que todos los servicios de Cloud Run tienen URL HTTPS estables.

A continuación, se presentan algunos de los casos prácticos:

  • API web de RESTful personalizada
  • Microservicio privado
  • Middleware HTTP o proxy inverso para tus aplicaciones web
  • Aplicación web empaquetada de forma previa

Crea servicios públicos

La creación de un servicio público en Cloud Run requiere lo siguiente:

  • Acceso al servicio desde la Internet pública
  • Una URL destinada al uso público

A fin de hacer público un servicio, configúralo para permitir el acceso no autenticado (público) cuando realices la implementación, o en cualquier momento después de la implementación.

Puedes usar la URL estable y de asignación automática proporcionada en la primera implementación de tu servicio como la URL pública en Cloud Run. Para determinar la URL de un servicio implementado:

gcloud run services describe SERVICE --format 'value(status.url)'

La URL de un servicio de Cloud Run tiene el formato https://[TAG---]SERVICE_IDENTIFIER.run.app, en el que TAG se refiere a la etiqueta de tráfico para la revisión que solicitas, y SERVICE_IDENTIFIER es un identificador estable y único de un servicio de Cloud Run. No analices el SERVICE_IDENTIFIER, ya que no tiene un formato fijo, y la lógica para la generación de SERVICE_IDENTIFIER está sujeta a cambios.

También puedes usar tu propio dominio personalizado que se asigne al servicio. Esto proporciona automáticamente certificados SSL administrados.

Cloud Run redirecciona todas las solicitudes HTTP a HTTPS, pero finaliza TLS antes de que lleguen a tu servicio web. Si tu servicio genera recursos web que hacen referencia a otros recursos web con URL no seguras (http://), tu página puede estar sujeta a advertencias o errores de contenido mixto. Usa el protocolo https para todos los URI web de referencia o justifica las directivas de proxy en la solicitud HTTP, como el encabezado HTTP X-Forwarded-Proto.

HTTP y HTTP/2

De manera predeterminada, Cloud Run pasa las solicitudes HTTP/2 a HTTP/1 cuando estas se envían al contenedor. Si deseas configurar explícitamente tu servicio para que use HTTP/2 de extremo a extremo, consulta Usa HTTP/2.

Crea servicios privados

A fin de crear un servicio privado en Cloud Run, debes limitar el acceso al servicio. Para ello, aprovecha el permiso de invocador de IAM.

También puedes limitar el acceso a un servicio mediante el mecanismo de autenticación y autorización a nivel de la aplicación, por ejemplo, mediante Identity Platform.

Prueba servicios privados

La forma más fácil de probar los servicios privados es usar el proxy de Cloud Run en Google Cloud CLI. De esta forma, se envía mediante proxy el servicio privado a http://localhost:8080 (o al puerto especificado con --port) y se proporciona el token de la cuenta activa o cualquier otro token que especifiques. Esto te permite usar un navegador web o una herramienta como curl. Esta es la forma recomendada de probar de manera privada un sitio web o una API en el navegador.

Puedes enviar un proxy de un servicio de forma local con el siguiente comando:

gcloud run services proxy SERVICE --project PROJECT-ID

También puedes probar servicios privados sin el proxy mediante una herramienta como curl y pasar un token de autenticación en el encabezado Authorization:

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL

Servicio a servicio privado

Un servicio de Cloud Run puede llamar a otro servicio de Cloud Run administrado con la autenticación de servicio a servicio.

Código de muestra que invoca un servicio privado

Para ver muestras de código que muestran cómo obtener un token de ID y realizar una solicitud HTTP a un servicio privado, consulta el tema Autentica servicio a servicio.

Usa un middleware para mejorar tu servicio

Los proxies HTTPS pueden descargar funciones comunes de un servicio HTTP, como el almacenamiento en caché, la validación de solicitudes o la autorización. En el caso de los microservicios, muchos proxies HTTP son parte de una solución de puerta de enlace de la API o una malla de servicios, como Istio.

Puedes usar los productos de Google Cloud que se mencionan a continuación para mejorar tu servicio de Cloud Run: