Puedes especificar las dependencias de tu función de Cloud Run con un módulo de Go o un vendor
directorio.
Especificar dependencias con módulos de Go
Para especificar las dependencias de las funciones de Cloud Run con un módulo de Go, debes incluirlas en un archivo go.mod
.
Cuando despliegues tu función, Go incorporará automáticamente las dependencias en tu archivo go.mod
.
Para crear un archivo go.mod
, consulta Gestionar dependencias en Go.
Functions Framework es una dependencia obligatoria para todas las funciones. Aunque Cloud Run Functions lo instala en tu nombre cuando se crea la función, te recomendamos que lo incluyas como dependencia explícita para mayor claridad.
Si tu función depende de dependencias privadas, te recomendamos que hagas una réplica de functions-framework
en tu registro privado. Incluye functions-framework
como dependencia de tu función para evitar instalar el paquete desde Internet.
Especificar dependencias con un directorio vendor
Cloud Run Functions también te permite incluir tus dependencias con un vendor
directorio.
Usar un directorio de proveedores es útil si tu dependencia no está disponible a través de un gestor de dependencias o si el acceso a Internet del entorno de tus funciones de Cloud Run está restringido.
La mayoría de las veces, los directorios vendor
se mantienen con un gestor de dependencias.
Puedes usar el gestor de dependencias que quieras. Por ejemplo, puedes usar la función Modules de Go para crear un directorio vendor
a partir de tu archivo go.mod
.
Debes incluir Functions Framework para Go en tu directorio de proveedores. Para usar la cadena de herramientas de Go, sigue estos pasos:
Añade la siguiente directiva al bloque de importación de tu código Go:
_ "github.com/GoogleCloudPlatform/functions-framework-go/funcframework"
Actualiza el archivo
go.mod
para incluir el nuevo paquete importado:go mod tidy
Crea un directorio
vendor
con el contenido del 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á al implementar la función.
Para asegurarse de que se respeta su directorio de proveedores, utilice un archivo .gcloudignore
para evitar subir sus 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
Usar dependencias privadas
Si las dependencias de tu función se alojan en un repositorio que no es de acceso público, debes usar un directorio vendor
para obtener las dependencias antes de implementar la función. Si tienes pensado usar un archivo go.mod
, consulta las instrucciones anteriores para evitar posibles conflictos entre el archivo go.mod
y el directorio vendor
.