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 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
en el directorio de la aplicación de ejemplo contiene la siguiente declaración import:
import "foo/bar"
Entonces, la CLI 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 CLI 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
desde el my_repo
de GitHub, ejecuta lo siguiente:
go get github.com/my_repo/packagename
Implementar 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.