Перестало работать развертывание облачных функций Google через репозитории Cloud Source - PullRequest
0 голосов
/ 09 января 2019

Мне удалось создать сценарий развертывания функции GCP с помощью следующей команды:

gcloud beta functions deploy pipeline-helper --set-env-vars PROPFILE_BUCKET=${my_bucket},PROPFILE_PATH=${some_property} --source https://source.developers.google.com/projects/{PROJECT}/repos/{REPO}/fixed-aliases/1.0.1/paths/ --entry-point onFlagFileCreation --runtime nodejs6 --trigger-resource ${my_bucket} --trigger-event google.storage.object.finalize --region europe-west1 --memory 1G --timeout 300s

Это работало в течение нескольких дней, последний из которых был 4 декабря. Затем, при запуске 27 декабря ... команда завершилась неудачно со следующим выводом (с добавленной опцией отладки):

    Deploying function (may take a while - up to 2 minutes)...
..failed.
DEBUG: (gcloud.beta.functions.deploy) OperationError: code=13, message=Failed to retrieve function source code
Traceback (most recent call last):
  File "/usr/lib/google-cloud-sdk/lib/googlecloudsdk/calliope/cli.py", line 841, in Execute
    resources = calliope_command.Run(cli=self, args=args)
  File "/usr/lib/google-cloud-sdk/lib/googlecloudsdk/calliope/backend.py", line 770, in Run
    resources = command_instance.Run(args)
  File "/usr/lib/google-cloud-sdk/lib/surface/functions/deploy.py", line 203, in Run
    return _Run(args, track=self.ReleaseTrack(), enable_env_vars=True)
  File "/usr/lib/google-cloud-sdk/lib/surface/functions/deploy.py", line 157, in _Run
    return api_util.PatchFunction(function, updated_fields)
  File "/usr/lib/google-cloud-sdk/lib/googlecloudsdk/api_lib/functions/util.py", line 308, in CatchHTTPErrorRaiseHTTPExceptionFn
    return func(*args, **kwargs)
  File "/usr/lib/google-cloud-sdk/lib/googlecloudsdk/api_lib/functions/util.py", line 364, in PatchFunction
    operations.Wait(op, messages, client, _DEPLOY_WAIT_NOTICE)
  File "/usr/lib/google-cloud-sdk/lib/googlecloudsdk/api_lib/functions/operations.py", line 126, in Wait
    _WaitForOperation(client, request, notice)
  File "/usr/lib/google-cloud-sdk/lib/googlecloudsdk/api_lib/functions/operations.py", line 101, in _WaitForOperation
    sleep_ms=SLEEP_MS)
  File "/usr/lib/google-cloud-sdk/lib/googlecloudsdk/core/util/retry.py", line 219, in RetryOnResult
    result = func(*args, **kwargs)
  File "/usr/lib/google-cloud-sdk/lib/googlecloudsdk/api_lib/functions/operations.py", line 65, in _GetOperationStatus
    raise exceptions.FunctionsError(OperationErrorToString(op.error))
FunctionsError: OperationError: code=13, message=Failed to retrieve function source code
ERROR: (gcloud.beta.functions.deploy) OperationError: code=13, message=Failed to retrieve function source code
Build step 'Execute shell' marked build as failure
Finished: FAILURE

Моя проблема связана с использованием опции --source этой команды, когда она указывает на URL-адрес хранилища Google Source (он работает с корзиной gcs или локальным каталогом)

Я попытался использовать минимальный допустимый URL-адрес хранилища исходного кода https://source.developers.google.com/projects/PROJECT/repos/REPO, как указано в официальном документе здесь ... без успеха (та же ошибка)

После этого я клонировал официальный образец «Облачные функции Google - пример Hello World в GC Repositories» и попытался развернуть его с помощью эквивалентной команды ... безуспешно (та же ошибка). Однако я смог развернуть его с помощью zip-файла, загруженного в корзину gcs в моем проекте или из локального репозитория, но не из репозиториев Google Source ...

Учетная запись, используемая для развертывания функции (xxx-compute@developer.gserviceaccount.com), имеет следующее право:

  • Stackdriver Debugger Agent
  • Разработчик облачных функций
  • Агент службы облачных функций
  • Редактор
  • Сервисный аккаунт пользователя
  • Исходный репозиторий Writer
  • Агент службы облачных исходных репозиториев
  • Создатель объектов хранения
  • Средство просмотра объектов хранения

Любая помощь будет принята с благодарностью

1 Ответ

0 голосов
/ 29 января 2019

Как упоминалось в моем последнем комментарии к @Raj, проблема была связана с ошибкой в ​​GCP ... которая теперь исправлена. Поддержите «людей» там, где добрый и реактивный. Теперь все работает как положено!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...