Especifica dependencias en Go
Puedes especificar tus dependencias de funciones de Cloud Run con un módulo de Go o un directorio vendor
.
Especifica dependencias con módulos de Go
Para especificar dependencias de funciones de Cloud Run con un módulo de Go, debes enumerarlas en un archivo go.mod
.
Cuando implementas la función, Go incorpora de forma automática las dependencias en el archivo go.mod
.
Para crear un archivo go.mod
, consulta Administra dependencias en Go.
Functions Framework es una dependencia obligatoria para todas las funciones. Aunque las funciones de Cloud Run las instala en tu nombre cuando se crea la función, te recomendamos que la incluyas como una dependencia explícita para brindar mayor claridad.
Si tu
función depende de dependencias privadas, te recomendamos que
dupliques functions-framework
en tu registro privado. Incluye el functions-framework
duplicado
como una dependencia en tu función para evitar la instalación del
paquete desde la Internet pública.
Especifica dependencias con un directorio vendor
Las funciones de Cloud Run también te permiten incluir dependencias mediante un directorio vendor
.
Usar un directorio de proveedores es útil si tu dependencia no está disponible a través de un administrador de dependencias o si el acceso a Internet del entorno de funciones de Cloud Run está restringido.
La mayoría de las veces, los directorios vendor
se mantienen con un administrador de dependencias.
Puedes usar cualquier administrador de dependencias que prefieras. Por ejemplo, puedes utilizar la funcionalidad de los módulos de Go para crear un directorio vendor
desde tu archivo go.mod
.
Debes incluir el Framework de functions para Go en el directorio de proveedores. Para usar la cadena de herramientas de Go con el fin de hacer esto, haz lo siguiente:
Agrega la siguiente directiva al bloque de importación de tu código de Go:
_ "github.com/GoogleCloudPlatform/functions-framework-go/funcframework"
Actualiza tu archivo
go.mod
para incluir el nuevo paquete importado:go mod tidy
Crea un directorio
vendor
con el contenido de tu archivogo.mod
:go mod vendor
Versiones de Go anteriores a la 1.16
En las versiones de Go anteriores a la 1.16, si tienes un archivo go.mod
y un directorio vendor
, el directorio vendor
se ignorará cuando implementes tu función.
Para asegurarte de que se respete el directorio de proveedores, usa un archivo .gcloudignore
para evitar subir tus archivos go.mod
y go.sum
:
Crea un archivo
.gcloudignore
en la raíz del directorio de tu proyecto con el siguiente contenido:go.mod go.sum # Also ignore Git directories. Delete the following two lines if you want to # upload them. .git .gitignore
Usa dependencias privadas
Si las dependencias de tu función están alojadas en un repositorio al que no se puede acceder públicamente, debes usar un directorio vendor
para obtener las dependencias antes de implementar la función. Si planeas usar un archivo go.mod
, consulta las instrucciones anteriores para evitar posibles conflictos entre el archivo go.mod
y el directorio vendor
.