Я работаю в Google и над этим продуктом.
Загружен только каталог, в котором вы запускаете gcloud
. Нет никакого промежуточного этапа, кроме архивации текущего каталога и его загрузки.
Примечательно, что модули предпочитаются сборщиком по сравнению с поставщиком. Если есть go.mod
, модули будут использоваться. Когда вы загружаете свою функцию, она включает в себя только каталог с вашей функцией в корне, а не каталоги на один уровень выше. Итак, когда есть go.mod
и у вас есть директива замены, указывающая на один уровень вверх, она не будет работать.
Решение для этого макета на данный момент заключается в том, чтобы продавать, а не загружать файлы go.mod
/ go.sum
. При использовании gcloud
вы можете создать файл .gcloudignore
, чтобы сделать это для вас. См. https://cloud.google.com/functions/docs/concepts/go-runtime#specifying_dependencies для более подробной информации. В качестве альтернативы, измените ваш проект, включив в него все необходимые вспомогательные пакеты в подкаталогах.