É possível especificar as dependências da função do Cloud Run 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 Run 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 com 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.modpara incluir o novo pacote importado:go mod tidyCrie um diretório
vendorusando 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
.gcloudignorena 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
Usar dependências particulares
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 anteriores para evitar possíveis conflitos entre o
arquivo go.mod e o diretório vendor.