Cómo establecer comunicaciones entre tus servicios

ID de región

REGION_ID es un código abreviado que Google asigna en función de la región que eliges cuando creas la app. El código no corresponde a un país ni a una provincia, aunque algunos ID de región puedan parecer similares a los códigos de país y provincia que se suelen usar. En el caso de las apps creadas después de febrero de 2020, REGION_ID.r se incluye en las URL de App Engine. En el caso de las apps existentes creadas antes de esta fecha, el ID de región es opcional en la URL.

Obtén más información acerca de los ID de región.

Puedes usar varios métodos para comunicarte entre tus servicios de App Engine o con otros servicios, incluidos los servicios de Google Cloud y las aplicaciones externas.

El enfoque más sencillo para comunicarse con el servicio de App Engine es enviar solicitudes HTTP orientadas, en las que la URL incluye el nombre o ID de un recurso. Por ejemplo, puedes incluir el ID de un servicio o una versión que quieras establecer como destino, además del ID del proyecto de Google Cloud correspondiente:


https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com

Tenga en cuenta que la longitud combinada de VERSION-dot-SERVICE-dot-PROJECT_ID (en la que VERSION es el nombre de tu versión, SERVICE es el nombre de tu servicio y PROJECT_ID es el ID del proyecto) no puede tener más de 63 caracteres y no puede empezar o terminar con un guion. Si la longitud combinada es mayor que 63 caracteres, es posible que veas Error DNS address could not be found.

Obtén más información sobre las solicitudes en App Engine:

Tus servicios de App Engine también pueden comunicarse mediante Pub/Sub, que proporciona mensajes confiables y asíncronos de varios a varios entre procesos, incluido App Engine. Estos procesos pueden ser instancias individuales de tu aplicación, servicios o, incluso, aplicaciones externas.

Para compartir datos en las bases de datos y tu app de App Engine o cualquier otra aplicación externa, consulta la sección de información sobre el almacenamiento de datos y archivos.

Si usas los servicios heredados, también puedes pasar solicitudes entre servicios y de servicios a extremos externos mediante la API de recuperación de URL.

Además, los servicios en el entorno estándar que residen dentro del mismo proyecto de Google Cloud también pueden usar una de las API de App Engine para las siguientes tareas:

Comunicación privada

Comunicación entre servicios en el mismo proyecto

Puedes permitir que un servicio estándar de App Engine se comunique con otro servicio de App Engine en el mismo proyecto sin tener que exponer el servicio de destino a la Internet pública.

Para permitir la comunicación entre servicios en el mismo proyecto, haz lo siguiente:

  1. Establece controles de entrada mediante la configuración de entrada del servicio de destino para permitir solo el tráfico “interno”.

    La configuración “interno” permite solicitudes solo de las redes de VPC del proyecto. Esto incluye los recursos de App Engine desde una app cliente en la misma red cuando el tráfico de salida se enruta a través de un conector. El resto del tráfico de Internet o de otros proyectos de Google Cloud, incluidos otros servicios de App Engine, está bloqueado.

  2. Enruta el tráfico a través de un conector de Acceso a VPC sin servidores:

    1. Para cada versión de App Engine que envía tráfico privado a otros extremos de app, adjunta la versión a un conector de acceso a VPC sin servidores que pertenezca a una de las propias redes del proyecto de Google Cloud, no a una red de VPC compartida.

    2. Asegúrate de que el Acceso privado a Google esté habilitado para la subred que usa el conector de Acceso a VPC sin servidores.

    3. Configura una de las siguientes opciones:

      • Configura las solicitudes del cliente para usar el rango de IP private.googleapis.com mediante una entrada de DNS para el nombre de host de destino. Sigue la configuración de DNS para agregar el nombre de host DNS, pero asegúrate de configurar la zona privada para que sea para appspot.com en lugar de googleapis.com. Además, asegúrate de que el tráfico se dirija a la dirección appspot.com de la app de destino, no a un dominio personalizado. Solo se puede acceder a la app en el rango de IP private.googleapis.com mediante este dominio appspot.com.

      • Configura la app cliente para que envíe all-traffic a través del conector de Acceso a VPC sin servidores, en lugar de configurar las solicitudes para usar el rango de IP private.googleapis.com.

Comunicación entre servicios en diferentes proyectos

Puedes tener acceso privado entre proyectos de Google Cloud cuando las apps que se ejecutan en proyectos pertenecen a una red de VPC compartida que está configurada para invocar una app que se ejecuta en el proyecto host de la red de VPC compartida.

Si deseas usar este patrón, sigue los pasos anteriores para comunicarte entre los servicios del mismo proyecto. En el entorno estándar, conecta cada versión del cliente a un conector de Acceso a VPC sin servidores en la red de VPC compartida.

Otros métodos de comunicación entre proyectos que usan el acceso interno no son posibles en App Engine.

Rutas de URL reservadas

No es posible usar las siguientes rutas de URL:

  • Rutas de acceso que terminan en /eventlog
  • Rutas de acceso que comienzan con /_ah/.
  • Algunas rutas que terminan con z