Повторно разверните облачную функцию Google из командной строки, используя исходные репозитории - PullRequest
0 голосов
/ 02 февраля 2020

У меня довольно простая функция Google Cloud, которую я развертываю из репозиториев Cloud Source.

Я использую Google Cloud Shell в качестве машины для разработки.

Когда я делаю обновления для разработки этой функции я использую CLI для обновления pu sh моего репозитория исходного кода. Однако при запуске команды gcloud functions deploy ... из командной строки не заставляет GCF извлекать последний источник.

Иногда команда deploy после добавления нового исходного кода просто заявит «Ничего не обновлять». (что неверно.)

Чаще всего это будет go через процесс развертывания, но функция все равно будет запускать предыдущую версию кода.

Когда это происходит единственным способом, которым я можно получить функцию обновления, чтобы использовать панель инструментов, «Редактировать» функцию, а затем нажать кнопку «Развернуть» (даже если я ничего не менял).

Я забыл сделать какое-то управление версиями или пометка что требуется? Есть ли способ заставить CLI получить самый последний коммит из репо-источника?

1 Ответ

1 голос
/ 02 февраля 2020

Я думаю, вам нужна опция --source=SOURCE развертывания функций gcloud для указания на исходный репозиторий вместо текущего каталога (по умолчанию):

--source=SOURCE

Расположение исходного кода для развертывания. Расположение источника может быть одним из следующих трех:

  • Исходный код в Google Cloud Storage (должен быть .zip архив),
  • Ссылка на исходный репозиторий или,
  • Путь к локальной файловой системе (root каталог источника функции).

Обратите внимание, что если вы не укажете флаг --source:

  • Текущий каталог будет использоваться для развертывания новых функций.
  • Если функция была ранее развернута с использованием пути локальной файловой системы, то исходный код функции будет обновлен с использованием текущего каталога.
  • Если функция ранее развернутый с использованием местоположения в облачном хранилище Google или исходного хранилища, исходный код функции обновляться не будет.

Значение флага будет интерпретироваться как местоположение в облачном хранилище, если оно начинается с gs://.

Значение будет интерпретироваться как ссылка на исходный репозиторий, если оно начинается с https://.

В противном случае оно будет указывается как путь к локальной файловой системе. При развертывании источника из локальной файловой системы эта команда пропускает файлы, указанные в файле .gcloudignore (дополнительную информацию см. В gcloud topic gcloudignore). Если файл .gcloudignore не существует, команда попытается его создать.

Минимальный URL-адрес хранилища исходного кода: https://source.developers.google.com/projects/${PROJECT}/repos/${REPO}

Используя указанный выше URL, источники из Будет использоваться каталог root репозитория с ревизией, помеченный master.

Если вы хотите выполнить развертывание из ревизии, отличной от master, добавьте к URL один из следующих трех источников:

  • /revisions/${REVISION},
  • /moveable-aliases/${MOVEABLE_ALIAS},
  • /fixed-aliases/${FIXED_ALIAS}.

Если вы хотите развернуть источники из каталог, отличный от root, необходимо указать ревизию, перемещаемый псевдоним или фиксированный псевдоним, как указано выше, и добавить /paths/${PATH_TO_SOURCES_DIRECTORY} к URL-адресу.

В целом URL-адрес должен соответствовать следующему регулярное выражение:

  ^https://source\.developers\.google\.com/projects/
  (?<accountId>[^/]+)/repos/(?<repoName>[^/]+)
  (((/revisions/(?<commit>[^/]+))|(/moveable-aliases/(?<branch>[^/]+))|
  (/fixed-aliases/(?<tag>[^/]+)))(/paths/(?<path>.*))?)?$

Пример правильно отформатированного исходного URL-адреса хранилища:

  https://source.developers.google.com/projects/123456789/repos/testrepo/
  moveable-aliases/alternate-branch/paths/path-to=source
...