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 y otros.
A partir de la versión 1.22 de Go y posteriores, haz lo siguiente:
No puedes usar
go getfuera de un módulo en el modo heredadoGOPATH(GO111MODULE=off). Para obtener más información, consulta Herramientas.Go recomienda que uses un archivo
go.modpara administrar dependencias. Para instalar dependencias durante la implementación, incluye un archivogo.moden la misma carpeta que el archivoapp.yaml. Si deseas obtener más información sobre las versiones de Go y la administración de dependencias para directorios de proveedores, consulta GOPATH y módulos.
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, considera una app de ejemplo en la que defines lo siguiente:
Módulo
GOPATH:export GOPATH=/home/fred/go.Archivo
src1-1.go:import "foo/bar"Gloud CLI busca el paquete
foo/baren la ubicación/home/fred/go/src/foo/barcuando ejecutas o implementas la aplicación.
Si incluyes las fuentes de tus paquetes en GOPATH, debes tener cuidado de no colocar tu código fuente dentro del directorio de la aplicación, en el 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.yamldel servicio y uno o más archivos.go. - No incluyas ningún subdirectorio en el directorio de un servicio.
- Tu
GOPATHdebe 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 obligatorios
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
Realiza la implementación en App Engine
A fin de implementar tu aplicación en App Engine, debes 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 y prueba tu aplicación.