Especificar dependências no Go
É possível especificar as dependências da função do Cloud com um
módulo Go ou um diretório vendor
.
Especificar dependências com módulos Go
Para especificar dependências das funções do Cloud Run com um módulo Go,
liste-as em um arquivo go.mod
.
Quando você implanta a função, o Go incorpora automaticamente as dependências no
arquivo go.mod
.
Para criar um arquivo go.mod
, consulte
Como gerenciar dependências no Go.
O Functions Framework é uma dependência necessária para todas as funções. Embora as funções do Cloud Functions o instalem em seu nome quando a função é criada, recomendamos que você a inclua como uma dependência explícita para maior clareza.
Se a
função depende de dependências particulares, recomendamos que você
espelhe functions-framework
no registro particular. Inclua o functions-framework
espelhado como uma dependência da sua função para evitar a instalação do
pacote pela Internet pública.
Especificar dependências com um diretório vendor
As funções do Cloud Run também permitem incluir dependências por meio de um
diretório vendor
.
Usar um diretório de fornecedores é útil se a dependência não estiver disponível por meio de um
gerenciador de dependências ou se o acesso à Internet do ambiente das funções do Cloud Run
for restrito.
Na maioria das vezes, os diretórios vendor
são mantidos com um gerenciador de dependências.
É possível usar qualquer gerenciador de dependências que você preferir. Por exemplo, você pode usar
a funcionalidade dos módulos do Go para criar um diretório vendor
a partir do arquivo go.mod
.
Você precisa incluir o Functions Framework para Go no diretório de fornecedores. Para usar o conjunto de ferramentas Go, faça o seguinte:
Adicione a seguinte diretiva ao bloco de importação do seu código Go:
_ "github.com/GoogleCloudPlatform/functions-framework-go/funcframework"
Atualize o arquivo
go.mod
para incluir o novo pacote importado:go mod tidy
Crie um diretório
vendor
usando o conteúdo do arquivogo.mod
:go mod vendor
Versões do Go anteriores à 1.16
Para versões do Go anteriores à 1.16, se você tiver um arquivo go.mod
e um diretório vendor
,
o diretório vendor
será ignorado quando você implantar a função.
Para garantir que o diretório de fornecedores seja respeitado, use um
arquivo .gcloudignore
e evite fazer upload dos arquivos go.mod
e go.sum
:
Crie um arquivo
.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
Como usar dependências privadas
Se as dependências da função estiverem hospedadas em um repositório que não é acessível publicamente, use um diretório vendor
para buscar as dependências antes de implantar a função. Se você pretende usar um arquivo go.mod
,
consulte as instruções acima para evitar conflitos entre o arquivo go.mod
e o diretório vendor
.