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 get
fuera 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.mod
para administrar dependencias. Para instalar dependencias durante la implementación, incluye un archivogo.mod
en 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/bar
en la ubicación/home/fred/go/src/foo/bar
cuando 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.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 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.