Especifique dependências em Go

Pode especificar as dependências da função do Cloud Run com um módulo Go ou um diretório vendor.

Especifique dependências com módulos Go

Para especificar as dependências das funções do Cloud Run com um módulo Go, tem de as listar num ficheiro go.mod. Quando implementa a sua função, o Go incorpora automaticamente as dependências no ficheiro go.mod.

Para criar um ficheiro go.mod, consulte o artigo Gerir dependências no Go.

O Functions Framework é uma dependência obrigatória para todas as funções. Embora as funções do Cloud Run o instalem em seu nome quando a função é criada, recomendamos que o inclua como uma dependência explícita para maior clareza.

Se a sua função depender de dependências privadas, recomendamos que reflita functions-framework no seu registo privado. Inclua o pacote functions-framework duplicado como uma dependência da sua função para evitar a instalação do pacote a partir da Internet pública.

Especifique dependências com um diretório vendor

As funções do Cloud Run também lhe permitem incluir as suas dependências com um vendordiretório. A utilização de um diretório de fornecedores é útil se a sua dependência não estiver disponível através de um gestor de dependências ou se o acesso à Internet do ambiente das funções do Cloud Run estiver restrito.

Na maioria das vezes, os diretórios vendor são mantidos com um gestor de dependências. Pode usar qualquer gestor de dependências que quiser. Por exemplo, pode usar a funcionalidade de módulos do Go para criar um diretório vendor a partir do seu ficheiro go.mod.

Tem de incluir o Functions Framework for Go no seu diretório de fornecedores. Para usar a cadeia de ferramentas Go para o fazer:

  1. Adicione a seguinte diretiva ao bloco de importação do seu código Go:

    _ "github.com/GoogleCloudPlatform/functions-framework-go/funcframework"
    
  2. Atualize o ficheiro go.mod para incluir o novo pacote importado:

    go mod tidy
    
  3. Crie um diretório vendor com o conteúdo do seu ficheiro go.mod:

    go mod vendor
    

Versões do Go anteriores à 1.16

Para versões do Go anteriores à 1.16, se tiver um ficheiro go.mod e um diretório vendor, o diretório vendor será ignorado quando implementar a sua função. Para garantir que o seu diretório de fornecedores é respeitado, use um .gcloudignore file para evitar carregar os seus ficheiros go.mod e go.sum:

  1. Crie um ficheiro .gcloudignore na raiz do diretório do projeto com o seguinte conteúdo:

    go.mod
    go.sum
    
    # Also ignore Git directories. Delete the following two lines if you want to
    # upload them.
    .git
    .gitignore
    

Use dependências privadas

Se as dependências da sua função estiverem alojadas num repositório que não seja acessível publicamente, tem de usar um diretório vendor para obter as dependências antes de implementar a função. Se planear usar um go.mod ficheiro, consulte as instruções anteriores para evitar potenciais conflitos entre o ficheiro go.mod e o diretório vendor.