El entorno de ejecución de Java en esta referencia usa un archivo de configuración con formato YAML, que usan las herramientas basadas en gcloud CLI, como gcloud CLI o los complementos Maven, Gradle o IntelliJ basados en gcloud CLI
Implementa el archivo de envío
El archivo dispatch.yaml puede residir en cualquier lugar de tu código fuente.
Para implementar el archivo de configuración de envío sin alterar la versión en funcionamiento en la actualidad, usa uno de los siguientes comandos en el directorio que contiene tu archivo de envío, según tu entorno:
gcloud
gcloud app deploy dispatch.yaml
Maven
mvn appengine:deployDispatch dispatch.yaml
Gradle
gradle appengineDeployDispatch dispatch.yaml
IDE
Si usas IntelliJ o Eclipse, debes usar el formulario de implementación para seleccionar los archivos de configuración individuales que se implementarán.
Para obtener más información sobre los comandos de implementación, consulta Implementa una app.
Sintaxis
El elemento raíz en el archivo dispatch.yaml es dispatch: y contiene una lista de definiciones de enrutamiento que se especifican a través de los siguientes subelementos.
En las reglas que defines en el archivo de envío, debes usar patrones de URL HTTP que incluyan la notación “.” para separar los subdominios. Las URL definidas con la notación “-dot-” de HTTPS no son compatibles.
Las reglas de envío dependen del orden, y solo se aplicará la primera regla que coincida con una URL.
| Elemento |
Descripción |
service |
Especifica el nombre del servicio que procesará las solicitudes que coinciden con el patrón de url. Ten en cuenta que los servicios antes se denominaban “módulos”.
|
url |
En el elemento url, defines el patrónde URL, el patrónque puede incluir el nombre de host y la ruta de URL con 100 caracteres o menos.
No se admiten las comillas (" ").
Para el elemento service, especifica el nombre del servicio que deseas que controle cualquier solicitud entrante que coincida con el patrón de URL del elemento url.
Sugerencia: Puedes incluir patrones glob, como el carácter comodín * en el elemento url. Sin embargo, esos patrones solo pueden usarse antes del nombre de host y al final de la ruta de URL.
El archivo de envío no enruta las rutas de URL que empiezan con /_ah/.
|
Ejemplo
El siguiente es un archivo de envío de muestra que enruta solicitudes a https://simple-sample.uc.r.appspot.com y solicitudes como https://simple-sample.uc.r.appspot.com/favicon.ico al servicio default. Todo el contenido estático se entrega desde el servicio default. Las solicitudes para dispositivos móviles, como https://simple-sample.uc.r.appspot.com/mobile/, se enrutan a un frontend de dispositivo móvil, y las solicitudes de trabajador, como https://simple-sample.uc.r.appspot.com/work/, se enrutan a un backend estático.
Ejemplo:
dispatch:
# Default service serves the typical web resources and all static resources.
- url: "*/favicon.ico"
service: default
# Default service serves simple hostname request.
- url: "simple-sample.uc.r.appspot.com/"
service: default
# 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
Si prefieres reglas de enrutamiento generales que coincidan con la mayor cantidad de solicitudes posible, puedes definir reglas con alcances más amplios.
Ejemplo:
# Send any path that begins with “simple-sample.uc.r.appspot.com/mobile” to the mobile-frontend service.
- url: "simple-sample.uc.r.appspot.com/mobile*"
service: mobile-frontend
# Send any domain/sub-domain with a path that starts with “work” to the static backend service.
- url: "*/work*"
service: static-backend
También puedes escribir expresiones que sean más estrictas.
Ejemplo:
# Matches the path "/fun", but not "/fun2" or "/fun/other"
- url: "*/fun"
service: mobile-frontend
# Matches the hostname 'customer1.myapp.com', but not '1.customer1.myapp.com.
- url: "customer1.myapp.com/*"
service: static-backend
Puedes crear reglas para redireccionar las solicitudes de tu dominio entrante a un servicio.
Las siguientes reglas enrutan las solicitudes entrantes de “customer1.myapp.com” al servicio predeterminado y las solicitudes entrantes de subdominios a un servicio de backend estático.
Ejemplo:
# Matches the domain name 'customer1.myapp.com' and directs all the request to default service
- url: "customer1.myapp.com/*"
service: default
# Matches all the subdomains of 'customer1.myapp.com' and directs all the request to static-backend service
- url: "*.customer1.myapp.com/*"
service: static-backend
Límites
El archivo de envío puede contener hasta 20 reglas de enrutamiento. Cuando se especifica la string de la URL, ni el nombre de host ni la ruta pueden tener más de 100 caracteres.
Borra todas las reglas de envío
Para borrar todas las reglas de envío, sigue estos pasos:
Edita el contenido del archivo dispatch.yaml de la siguiente manera:
dispatch: []
Implementa el archivo dispatch.yaml en App Engine.