Archivos de configuración

Cada versión de un servicio se define en un archivo .yaml, que proporciona el nombre del servicio y la versión. El archivo YAML suele llevar el mismo nombre que el servicio que define, pero esto no es obligatorio. Si implementas distintas versiones de un servicio, puedes crear varios archivos YAML en el mismo directorio, uno para cada versión.

En general, creas un directorio para cada servicio, que contiene los archivos YAML del servicio y el código fuente asociado. En el directorio principal de la aplicación, se incluyen ciertos archivos de configuración opcional a nivel de la aplicación (dispatch.yaml, cron.yaml, index.yaml y queue.yaml). El siguiente ejemplo muestra tres servicios. En service1 y service2, los archivos fuente están en el mismo nivel que el archivo YAML. En service3, hay archivos YAML para dos versiones.

Grafo de jerarquías de los servicios YAML

En el caso de proyectos pequeños y simples, todos los archivos de la aplicación pueden ubicarse en el mismo directorio.

Grafo de jerarquías de los servicios YAML pequeños

Todos los archivos YAML deben incluir un parámetro de versión. Para definir el servicio predeterminado, puedes incluir el parámetro service: default de forma explícita o dejar el parámetro de servicio fuera del archivo.

El archivo de configuración de cada servicio define el tipo de escalamiento y la clase de instancia para un servicio o versión específicos. Se usan diferentes parámetros de escalamiento, según el tipo de escalamiento que especifiques. Si no lo especificas, la opción predeterminada es el ajuste de escala automático. La configuración de clase de instancia y escalamiento se describe en la sección de referencia de app.yaml.

Para cada servicio, también puedes especificar una configuración que asigne las solicitudes de URL a secuencias de comando específicas y que identifique los archivos estáticos, lo que aumenta la eficiencia del servidor. Esta configuración también se incluye en el archivo yaml y se describe en la sección de referencia de app.yaml.

Servicio predeterminado

Todas las aplicaciones tienen un solo servicio predeterminado. Puedes definir el servicio predeterminado en app.yaml con la configuración service: default, pero no es necesario hacerlo. Todos los parámetros de configuración relevantes para los servicios pueden aplicarse al servicio predeterminado.

Archivos de configuración opcional

Estos archivos de configuración controlan características opcionales que se aplican a todos los servicios de la aplicación:

  • dispatch.yaml
  • queue.yaml
  • index.yaml
  • cron.yaml
  • dos.yaml

Para implementar actualizaciones de estos archivos de configuración en App Engine, ejecuta el siguiente comando desde el directorio donde se encuentran:

    gcloud app deploy [CONFIG_FILE]

Ejemplo

Este es un ejemplo de cómo podrías configurar los archivos YAML para una aplicación que tiene tres servicios: uno predeterminado que controla solicitudes web y dos servicios que controlan solicitudes móviles y procesamiento de backend.

Para empezar, define un archivo de configuración llamado app.yaml que controlará todas las solicitudes relacionadas con la Web:

runtime: go
api_version: go1

Esta configuración es idéntica a las configuraciones de la aplicación de App Engine existente; crea un servicio predeterminado con ajuste de escala automático. Su dirección pública es http://simple-sample.appspot.com.

Luego, imagina que quieres crear un servicio a fin de controlar las solicitudes web móviles. Para la conveniencia de los usuarios de dispositivos móviles, en este ejemplo, la latencia pendiente máxima será de solo un segundo y siempre tendremos, al menos, dos instancias inactivas. Para configurar eso, deberías crear un archivo de configuración mobile-frontend.yaml con los siguientes contenidos:

service: mobile-frontend
runtime: go
api_version: go1

automatic_scaling:
  min_idle_instances: 2
  max_pending_latency: 1s

Se puede acceder al servicio que crea este archivo en http://mobile-frontend.simple-sample.appspot.com.

Finalmente, agrega un servicio, llamado my-service, para controlar el trabajo de backend estático. Este podría ser un trabajo continuo que exporta datos de Datastore a BigQuery. El volumen de trabajo es relativamente fijo, por lo que solo necesitas 1 servicio residente en un momento determinado. Además, dado que se necesitará que estos trabajos controlen grandes volúmenes de procesamiento en la memoria, es conveniente tener servicios con una configuración de memoria aumentada. Para configurar esto, tienes que crear un archivo de configuración my-service.yaml (en el directorio static-backend) con los siguientes contenidos.

service: my_service
runtime: go
api_version: go1

instance_class: B8
manual_scaling:
  instances: 1

Se puede acceder al servicio que crea este archivo en http://my-service.simple-sample.appspot.com.

Ten en cuenta la configuración manual_scaling:. El parámetro instances: indica a App Engine cuántas instancias debe crear para este servicio.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Entorno estándar de App Engine para Go