Сборка и управление зависимостями функции на Go
Сервис Cloud Functions на этапе сборки автоматически устанавливает зависимости, необходимые для работы функции на Go, во время создания новой версии функции.
Примечание
Для сборки устанавливается build tag ycf
.
Для этого Cloud Functions поддерживает два способа автоматического управления зависимостями - модули и утилита dep
.
mod
МодулиGo
. Они являются основным и рекомендуемым способом управления зависимостями в сервисе Cloud Functions.
Для поставки зависимостей при помощи модулей следует загрузить файл go.mod
вместе с исходным кодом функции. При этом установятся последние версии указанных в этом файле пакетов, для явного указания версий следует также загрузить файл go.sum
.
Важно
Название модуля в файле go.mod
не должно быть main
.
В файле go.mod
не должна быть указана версия языка Go
, поскольку версия Go
в сгенерированном сборщиком плагине должна в точности соответствовать версии Go
, используемой в среде выполнения.
dep
Важно
Данный способ управления зависимостями устарел и не поддерживается для версии языка 1.16.
DepGo
.
Для поставки зависимостей при помощи утилиты dep
следует загрузить файлы Gopkg.toml
и Gopkg.lock
вместе с исходным кодом функции. В этом случае непосредственно перед сборкой кода вызовется команда dep ensure
.
Примечание
Если среди файлов присутствует одновременно и go.mod
, и Gopkg.toml
, то работоспособность сборщика не гарантируется. Не рекомендуется использовать эти два файла одновременно.
Процесс установки зависимостей имеет ограничения по ресурсам и времени исполнения. Подробнее об этом читайте в разделе Квоты и лимиты в Cloud Functions. Ознакомиться с журналом установки зависимостей можно по ссылке, которая отображается в списке операций.