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 vendor
diretó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:
Adicione a seguinte diretiva ao bloco de importação do seu código Go:
_ "github.com/GoogleCloudPlatform/functions-framework-go/funcframework"
Atualize o ficheiro
go.mod
para incluir o novo pacote importado:go mod tidy
Crie um diretório
vendor
com o conteúdo do seu ficheirogo.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
:
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
.