Puedes usar cualquier paquete compatible con Linux/amd64 con instancias que se ejecuten en el entorno flexible de App Engine. En estas instrucciones se da por hecho que usas el comando go get
para obtener los paquetes directamente de repositorios compatibles, como GitHub, Bitbucket o LaunchPad, entre otros.
A partir de la versión 1.22 de Go:
No puedes usar
go get
fuera de un módulo en el modo antiguoGOPATH
(GO111MODULE
=off
). Para obtener más información, consulta Herramientas.Go recomienda usar un archivo
go.mod
para gestionar las dependencias. Para instalar las dependencias durante la implementación, incluye un archivogo.mod
en la misma carpeta que el archivoapp.yaml
. Para obtener más información sobre las versiones de Go y la gestión de dependencias de directorios de proveedores, consulta GOPATH y módulos.
Declarar y gestionar dependencias
Las aplicaciones Go se organizan en paquetes que reflejan la estructura de directorios de los archivos de origen. Cuando usas una instrucción de importación, se interpretan las rutas relativas de la importación. Las rutas de importación válidas son rutas completas que son relativas al subdirectorio src
de todos los directorios especificados en tu GOPATH
.
Por ejemplo, supongamos que tienes una aplicación en la que defines lo siguiente:
Módulo
GOPATH
:export GOPATH=/home/fred/go.
Archivo
src1-1.go
:import "foo/bar"
La CLI de gcloud 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 tu paquete en GOPATH
, debes tener cuidado de no colocar el código fuente en el directorio de tu aplicación donde se encuentra el archivo app.yaml
. Si esto ocurre, pueden producirse problemas sutiles porque un paquete se puede cargar dos veces: una vez para la ruta relativa al directorio de un servicio y otra para la ruta completa. Para evitar problemas, la CLI de gcloud analizará tanto el directorio de tu aplicación como GOPATH
y, a continuación, mostrará un error si se detecta un conflicto.
Para obtener los mejores resultados, te recomendamos lo siguiente:
- Crea un directorio independiente en el directorio de tu aplicación para cada servicio.
- El directorio de cada servicio debe contener el archivo
app.yaml
del servicio y uno o varios 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 tu aplicación y contener todas las dependencias que importe tu aplicación.
Descargar los paquetes necesarios
Puedes usar el comando go get
para descargar paquetes. Por ejemplo, para descargar packagename
desde GitHub my_repo
, sigue estos pasos:
go get github.com/my_repo/packagename
Desplegar en App Engine
Para desplegar tu aplicación en App Engine, debes desplegar las bibliotecas que requiere tu aplicación junto con el código de la aplicación. Para obtener más información, consulta el artículo Probar y desplegar una aplicación.