Как я могу использовать локальный репозиторий поставщика в Google Cloud Functions с Go - PullRequest
1 голос
/ 27 мая 2020

Я пытаюсь развернуть облачную функцию Google, написанную на Go.

Проведя небольшое исследование, я обнаружил, что файлы поставщиков предпочтительнее go .mod, поэтому я продаю все, что я использовать (который включает некоторые локальные зависимости) и игнорировать файлы go .mod / sum в файле .gcloudignore.

Проблема в том, что после попытки развертывания я получаю следующую ошибку:

go: nimbus@v0.0.0-00010101000000-000000000000: parsing /nimbus/go.mod: open /nimbus/go.mod: no such file or directory; Error ID: 03a1e2f7

nimbus - моя локальная зависимость, и она имеет следующую структуру:

local repository structure

Репозиторий My Function имеет следующую структуру:

enter image description here

и мой go .mod файл:

module my_function

go 1.13

require nimbus v0.0.0-00010101000000-000000000000

replace nimbus => ../../../nimbus

Я пробовал это решение { ссылка } уже. Но это не устранило мою проблему.

Я перепробовал все, чтобы решить эту проблему, но, похоже, ничего не работает.

Ответы [ 2 ]

0 голосов
/ 27 мая 2020

Оказывается, проблема была очень сложной, и я надеюсь, что Google найдет для нее решение asp.

Развернув мою функцию с помощью Cloud Build, она будет читать из моего репозитория в Google Source, но чтение оттуда приведет к обходу файла .gcloudignore и развертыванию файлов go .mod / sum и каталога vendor с моим локальным кодом.

Как сказано в { ссылка }:

Если у вас есть файл go .mod и каталог поставщика, каталог поставщика будет проигнорирован, когда вы развертываете свою функцию.

Таким образом, ошибка возникает из-за того, что мой go .mod не может найти локальный репозиторий.

Мое решение состояло в том, чтобы переименовать мой go .mod / sum файлы, поэтому он не будет учитываться:

enter image description here

0 голосов
/ 27 мая 2020

Если у вас есть файл go .mod и каталог vendor, каталог vendor будет проигнорирован при развертывании вашей функции.

https://cloud.google.com/functions/docs/writing/specifying-dependencies-go

Я использовал модули при развертывании функций GCP в Go. Проблем не было. Но я не могу говорить о предпочтении использования vendor / вместо этого. Он должен работать, только без файла go .mod.

...