ID de región
El REGION_ID
es un código abreviado que Google asigna en función de la región que selecciones al crear tu aplicación. El código no corresponde a un país o provincia, aunque algunos IDs de región pueden parecerse a los códigos de país y provincia que se usan habitualmente. En las aplicaciones creadas después de febrero del 2020, REGION_ID.r
se incluye en las URLs de App Engine. En las aplicaciones creadas antes de esa fecha, el ID de región es opcional en la URL.
En esta página se describe cómo llegan a la versión apropiada de un servicio las solicitudes HTTP de los usuarios. Las solicitudes se pueden enrutar de las siguientes formas:
Estas opciones solo se aplican a las aplicaciones implementadas. Cuando haces pruebas de forma local, el comportamiento de las rutas depende del tiempo de ejecución y del entorno de desarrollo que estés usando.
Enrutamiento con URLs
Una vez que tu aplicación se esté ejecutando en App Engine, podrás usar la siguiente URL para enviar solicitudes HTTP a la aplicación:
https://PROJECT_ID.REGION_ID.r.appspot.com
donde PROJECT_ID
es el ID del Google Cloud proyecto
que contiene la aplicación.
Esta URL envía solicitudes al servicio predeterminado de tu aplicación en la versión que hayas configurado para recibir tráfico.
URLs de servicios y versiones
Si creas más de un servicio en tu aplicación, cada uno tendrá su propia URL. Cada versión de un servicio también tiene su propia URL, por lo que puedes implementar y probar una nueva versión antes de configurarla para que reciba tráfico.
Las URLs de servicios y versiones específicos tienen el siguiente formato:
VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com
Puedes omitir VERSION-dot-
si no necesitas segmentar por una versión específica.
Para obtener los IDs de los servicios y las versiones de tu aplicación, puedes usar cualquiera de las siguientes herramientas:
Consola
En la Google Cloud consola, puedes ver las páginas correspondientes Instancias, Servicios y Versiones.
gcloud
Ejecuta el comando
gcloud app instances list
para enumerar los IDs de recursos de un proyecto Google Cloud específico.
API
Para obtener IDs de recursos de forma programática, consulta los métodos list
de la API Admin.
URLs de ejemplo
A continuación, se muestran algunos ejemplos de URLs de App Engine, tanto del dominio appspot.com
que App Engine asigna a tu aplicación como de un dominio personalizado, que puedes configurar para tu aplicación.
- Envía la solicitud a una instancia disponible del servicio
default
: https://PROJECT_ID.REGION_ID.r.appspot.com
https://CUSTOM_DOMAIN
Las solicitudes las recibe cualquier versión configurada para el tráfico en el servicio
default
.- Envía la solicitud a una instancia disponible del servicio
- Envía una solicitud a una instancia disponible de un servicio específico:
https://SERVICE_ID-dot-PROJECT_ID.REGION_ID.r.appspot.com
https://SERVICE_ID.CUSTOM_DOMAIN
Las solicitudes las recibe cualquier versión configurada para el tráfico en el servicio de destino. Si el servicio al que te diriges no existe, la solicitud se enruta de forma flexible.
- Envía una solicitud a una instancia disponible de una versión específica en el
- Servicio de
default
: https://VERSION_ID-dot-default-dot-PROJECT_ID.REGION_ID.r.appspot.com
https://VERSION_ID.CUSTOM_DOMAIN
Cuando no se orienta a ningún servicio, las solicitudes se envían al servicio
default
.
Enrutamiento flexible
Si una solicitud coincide con la parte PROJECT_ID.REGION_ID.r.appspot.com
del nombre de host, pero incluye un nombre de servicio, versión o instancia que no existe, la solicitud se dirige al servicio default
. El enrutamiento flexible no se aplica a los dominios personalizados. Las solicitudes a estos dominios devolverán un código de estado HTTP 404
si el nombre de host no es válido.
Enrutamiento específico
Los siguientes patrones de URL alcanzan su objetivo si existen. Las solicitudes que no pasan por Cloud Load Balancing nunca se interceptan ni se redirigen mediante los patrones que hayas definido en tu archivo de configuración:
- Envía la solicitud a una instancia disponible de un servicio y una versión específicos:
https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com
https://VERSION_ID.SERVICE_ID.PROJECT_ID.CUSTOM_DOMAIN
Enrutamiento con un archivo de envío
Puedes crear un archivo de envío para anular las reglas de enrutamiento basadas en URLs de App Engine y definir tus propias reglas de enrutamiento personalizadas. Con un archivo de distribución, puedes enviar solicitudes entrantes a un servicio específico en función de la ruta o el nombre de host de la URL de la solicitud.
Crear un archivo de envío
Para crear un archivo de envío:
Crea un archivo llamado
dispatch.yaml
en la raíz del directorio de tu proyecto o en la raíz del directorio de tu serviciodefault
.Define las reglas de enrutamiento en el archivo tal como se describe en la referencia de
dispatch.yaml
.
Ten en cuenta lo siguiente sobre las reglas de enrutamiento:
- Puedes definir hasta 20 reglas de enrutamiento. Cada regla debe contener los elementos
url
yservice
. - Las reglas deben usar patrones de URL HTTP que incluyan la notación "
.
" para separar los subdominios. No se admiten las URLs definidas con la notación HTTPS "-dot-
". - Las reglas también se aplican a las URLs que defina en su archivo
cron.yaml
.
Por ejemplo, puedes crear un archivo de envío para dirigir solicitudes móviles como
https://simple-sample.uc.r.appspot.com/mobile/
a un frontend móvil y solicitudes de trabajador
como https://simple-sample.uc.r.appspot.com/work/
a un backend estático:
dispatch:
# Send all mobile traffic to the mobile frontend.
- url: "*/mobile/*"
service: mobile-frontend
# Send all work to the one static backend.
- url: "*/work/*"
service: static-backend
Desplegar el archivo de envío
Para implementar el archivo de configuración de envío con gcloud
, ejecuta el siguiente comando:
gcloud app deploy dispatch.yaml
Enrutamiento con Cloud Load Balancing
Cloud Load Balancing es un producto independiente que permite configuraciones de red avanzadas para todas las aplicaciones que se ejecutan en Google Cloud.
Cuando el balanceo de carga HTTP y HTTPS está habilitado para aplicaciones sin servidor, puedes hacer lo siguiente:
Configura tu aplicación sin servidor para que sirva contenido desde una dirección IP IPv4 o IPv6 dedicada que no se comparta con otros servicios.
Reutiliza los mismos certificados SSL y claves privadas que usas en Compute Engine, Google Kubernetes Engine y Cloud Storage. De esta forma, no tendrás que gestionar certificados independientes para las aplicaciones sin servidor.
Si el NEG sin servidor especifica un servicio, una versión o una etiqueta, el balanceador de carga no interferirá ni interactuará con las reglas de enrutamiento de tu archivo dispatch.yaml
.
Las reglas dispatch.yaml
no se evalúan hasta que un NEG sin servidor dirige el tráfico a App Engine. El enrutamiento específico falla cuando el NEG sin servidor no especifica un servicio, una versión o una etiqueta, y el enrutamiento se basa en las reglas que especifiques en el archivo dispatch.yaml
.
Ten en cuenta lo siguiente:
- Te recomendamos que uses controles de entrada para que tu aplicación solo reciba solicitudes enviadas desde el balanceador de carga (y la VPC, si la usas). De lo contrario, los usuarios podrán usar la URL de App Engine de tu aplicación para saltarse el balanceador de carga, las políticas de seguridad de Cloud Armor, los certificados SSL y las claves privadas que se transfieren a través del balanceador de carga.
Métricas incoherentes cuando el entorno flexible de App Engine usa Cloud Load Balancing
El panel de control del entorno flexible de App Engine muestra todas las métricas solo de las solicitudes que se han enrutado a través de un backend gestionado del entorno flexible. Si usas el entorno flexible de App Engine con Cloud Load Balancing, algunas métricas de la tabla de métricas de App Engine se registran como métricas de la tabla loadbalancing
. Para obtener más información, consulta Registro y monitorización del balanceo de carga HTTP(S).
Acerca del ID de región en las URLs
El REGION_ID
es un código abreviado que Google asigna en función de la región que selecciones al crear tu aplicación. El código no corresponde a un país o provincia, aunque algunos IDs de región pueden parecerse a los códigos de país y provincia que se usan habitualmente. En las aplicaciones creadas después de febrero del 2020, REGION_ID.r
se incluye en las URLs de App Engine. En las aplicaciones creadas antes de esa fecha, el ID de región es opcional en la URL.
Puedes usar las siguientes herramientas para ver el ID de región de tu aplicación:
Consola
En la Google Cloud consola, puede ver las URLs de las instancias, los servicios y las versiones de su aplicación.
Todas estas URLs incluyen el ID de región.
gcloud
Cuando despliegues una aplicación o un servicio, el comando gcloud app deploy
mostrará la URL después de que el despliegue se haya realizado correctamente. Esta URL incluye el ID de región.
Para ver la URL de un servicio que ya se ha implementado, sigue estos pasos:
Introduce el comando
gcloud app versions list
para enumerar las versiones de un servicio específico. Por ejemplo, para enumerar las versiones del servicio predeterminado, introducegcloud app versions list --service=default
.Introduce el comando
gcloud app versions describe
. El resultado de ese comando incluye la URL de la versión con el ID de región de la aplicación. Por ejemplo, para describir la versión 20191023t101741 del servicio predeterminado, introducegcloud app versions describe 20191023t101741 --service=default
El nombre de dominio se incluye en los datos de la solicitud
El nombre de dominio usado en la solicitud se incluye en los datos de la solicitud que se transfieren a tu aplicación. Por lo tanto, puedes usar los datos de la solicitud para controlar cómo responde tu aplicación en función del nombre de dominio de la solicitud. Por ejemplo, si quieres redirigir a un dominio oficial, puedes programar tu aplicación para que compruebe el encabezado de la solicitud Host
y, a continuación, responda en función del nombre de dominio.