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:

  1. Agrega la siguiente directiva al bloque de importación de tu código de Go:

    _ "github.com/GoogleCloudPlatform/functions-framework-go/funcframework"
    
  2. Actualiza tu archivo go.mod para incluir el nuevo paquete importado:

    go mod tidy
    
  3. Crea un directorio vendor con el contenido de tu archivo go.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:

  1. 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.