Usa bibliotecas de Go

Puedes usar cualquier paquete compatible con linux/amd64 con instancias que se ejecuten en el entorno flexible de App Engine. Estas instrucciones suponen que utilizas el comando go get para obtener los paquetes directamente desde repositorios compatibles, como GitHub, Bitbucket, LaunchPad, etcétera.

Declara y administra las dependencias

Las aplicaciones de Go se organizan en paquetes que replican la estructura de directorios de tus archivos fuente. Cuando utilizas una instrucción import, se interpretan las rutas relativas en import. Las rutas de importación válidas son rutas completamente calificadas que son relativas al subdirectorio src de todos los directorios que se especifican en tu GOPATH.

Por ejemplo, si GOPATH se define de la siguiente manera:

export GOPATH=/home/fred/go

Y el archivo src1-1.go del directorio de la aplicación de ejemplo contiene la siguiente instrucción import:

import "foo/bar"

Entonces, la herramienta de gcloud buscará el paquete "foo/bar" en la siguiente ubicación cuando ejecutes o implementes la aplicación:

/home/fred/go/src/foo/bar

Si incluyes las fuentes de tus paquetes en GOPATH, debes tener cuidado de no colocar tu código fuente en el directorio de la aplicación o debajo de este, en que se encuentra el archivo app.yaml. Si esto sucede, pueden surgir problemas sutiles, porque un paquete podría cargarse dos veces, una vez en la ruta relativa al directorio de un servicio y una vez más en la ruta completamente calificada. Para evitar problemas, la herramienta de gcloud analizará tanto el directorio de tu aplicación como GOPATH y, luego, informará un error si se detecta un conflicto.

Para obtener los mejores resultados, te recomendamos lo siguiente:

  • Crea un directorio separado en el directorio de la aplicación para cada servicio.
  • El directorio de cada servicio debe contener el archivo app.yaml del servicio y uno o más archivos .go.
  • No incluyas ningún subdirectorio en el directorio de un servicio.
  • Tu GOPATH debe especificar un directorio que esté fuera del directorio de la aplicación y contener todas las dependencias que importa tu aplicación.

Descarga los paquetes requeridos

Puedes usar el comando go get para descargar paquetes. Por ejemplo, para descargar packagename de my_repo de GitHub:

go get github.com/my_repo/packagename

Implementa en App Engine

A fin de implementar tu aplicación en App Engine, deberás implementar las bibliotecas que tu aplicación requiere junto con el código de la aplicación. Para obtener más información, consulta Implementa tu aplicación.