использовать функции Google Cloud с реестром, отличным от реестра. npmjs .org - PullRequest
6 голосов
/ 12 февраля 2020

В настоящее время я пытаюсь развернуть облачную функцию node.js с помощью (частного) пакета из реестра пакетов GitHub (npm .pkg.github.com).

Согласно официальным документам здесь , использование частных модулей поддерживается добавлением файла .npmr c с токеном доступа, однако нет упоминания об использовании пользовательских реестров.

.npmr c, который Я загружаю в Cloud Functions вместе с пакетом. json, а остальная часть кода выглядит следующим образом:

registry=https://npm.pkg.github.com/<myorg>
//npm.pkg.github.com/:_authToken=<mytoken>

Однако развертывание не выполняется из-за:

Build failed: {"error": {"canonicalCode": "INVALID_ARGUMENT", "errorMessage": "`npm_install` had stderr output:
npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/<mypackage> - Not found
npm ERR! 404 
npm ERR! 404 '<mypackage>' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)

Так как Вы можете видеть, что определение реестра из .npmr c, похоже, игнорируется, так как оно пытается вытащить пакет из npmjs .org, где он действительно не существует.

Do Облачные функции Google не поддерживают пользовательские реестры?


Редактировать: добавлен подробный вывод журнала

Deploying function (may take a while - up to 2 minutes)...failed.
DEBUG: (gcloud.functions.deploy) OperationError: code=3, message=Build failed: {"error": {"canonicalCode": "INVALID_ARGUMENT", "errorMessage": "`npm_install` had stderr output:\nnpm ERR! code E404\nnpm ERR! 404 Not Found - GET https://registry.npmjs.org/<redacted> - Not found\nnpm ERR! 404 \nnpm ERR! 404  '<redacted>' is not in the npm registry.\nnpm ERR! 404 You should bug the author to publish it (or use the name yourself!)\nnpm ERR! 404 It was specified as a dependency of 'functions'\nnpm ERR! 404 \nnpm ERR! 404 Note that you can also install from a\nnpm ERR! 404 tarball, folder, http url, or git url.\n\nnpm ERR! A complete log of this run can be found in:\nnpm ERR!     /builder/home/.npm/_logs/2020-02-12T14_14_22_565Z-debug.log\nnpm ERR! code ELIFECYCLE\nnpm ERR! errno 1\nnpm ERR! @ preinstall: `./install-function-dependencies`\nnpm ERR! Exit status 1\nnpm ERR! \nnpm ERR! Failed at the @ preinstall script.\nnpm ERR! This is probably not a problem with npm. There is likely additional logging output above.\n\nnpm ERR! A complete log of this run can be found in:\nnpm ERR!     /builder/home/.npm/_logs/2020-02-12T14_14_22_586Z-debug.log\n\nerror: `npm_install` returned code: 1", "errorType": "InternalError", "errorId": "BDE5340F"}}
Traceback (most recent call last):
  File "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/lib/googlecloudsdk/calliope/cli.py", line 981, in Execute
    resources = calliope_command.Run(cli=self, args=args)
  File "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/lib/googlecloudsdk/calliope/backend.py", line 807, in Run
    resources = command_instance.Run(args)
  File "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/lib/surface/functions/deploy.py", line 307, in Run
    return _Run(args, track=self.ReleaseTrack())
  File "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/lib/surface/functions/deploy.py", line 263, in _Run
    op, do_every_poll=TryToSetInvokerPermission)
  File "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/lib/googlecloudsdk/api_lib/functions/util.py", line 306, in CatchHTTPErrorRaiseHTTPExceptionFn
    return func(*args, **kwargs)
  File "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/lib/googlecloudsdk/api_lib/functions/util.py", line 353, in WaitForFunctionUpdateOperation
    do_every_poll=do_every_poll)
  File "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/lib/googlecloudsdk/api_lib/functions/operations.py", line 137, in Wait
    _WaitForOperation(client, request, notice, do_every_poll)
  File "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/lib/googlecloudsdk/api_lib/functions/operations.py", line 111, in _WaitForOperation
    sleep_ms=SLEEP_MS)
  File "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/lib/googlecloudsdk/core/util/retry.py", line 219, in RetryOnResult
    result = func(*args, **kwargs)
  File "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/lib/googlecloudsdk/api_lib/functions/operations.py", line 70, in _GetOperationStatus
    raise exceptions.FunctionsError(OperationErrorToString(op.error))
FunctionsError: OperationError: code=3, message=Build failed: {"error": {"canonicalCode": "INVALID_ARGUMENT", "errorMessage": "`npm_install` had stderr output:\nnpm ERR! code E404\nnpm ERR! 404 Not Found - GET https://registry.npmjs.org/<redacted> - Not found\nnpm ERR! 404 \nnpm ERR! 404  '<redacted>' is not in the npm registry.\nnpm ERR! 404 You should bug the author to publish it (or use the name yourself!)\nnpm ERR! 404 It was specified as a dependency of 'functions'\nnpm ERR! 404 \nnpm ERR! 404 Note that you can also install from a\nnpm ERR! 404 tarball, folder, http url, or git url.\n\nnpm ERR! A complete log of this run can be found in:\nnpm ERR!     /builder/home/.npm/_logs/2020-02-12T14_14_22_565Z-debug.log\nnpm ERR! code ELIFECYCLE\nnpm ERR! errno 1\nnpm ERR! @ preinstall: `./install-function-dependencies`\nnpm ERR! Exit status 1\nnpm ERR! \nnpm ERR! Failed at the @ preinstall script.\nnpm ERR! This is probably not a problem with npm. There is likely additional logging output above.\n\nnpm ERR! A complete log of this run can be found in:\nnpm ERR!     /builder/home/.npm/_logs/2020-02-12T14_14_22_586Z-debug.log\n\nerror: `npm_install` returned code: 1", "errorType": "InternalError", "errorId": "BDE5340F"}}

Ответы [ 2 ]

2 голосов
/ 17 февраля 2020

Облачные функции Google не поддерживают пользовательские реестры?

Облачные функции Google должны поддерживать пользовательские реестры. Какую версию Nodejs вы используете? Сообщалось о некоторых других подобных проблемах: Runtime не поддерживает частные npm пакеты с Nodejs 10.

В теме упоминается, что:

Я хотел бы сообщить вам, что команда разработчиков Cloud Functions внесла изменение для решения этой проблемы. Вы можете снова попробовать свои усилия по миграции с Node.js 8 до Node.js 10. При развертывании устраняется проблема 404 NOT_FOUND при попытке установить частные пакеты.

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

gcloud functions deploy functionName 
 --region europe-west1 
 --runtime nodejs10 
 --source=SOURCE
 --set-env-vars= NPM_REGISTRY=<your private registry URL>, NPM_SCOPE=<@private-registry-scope>, NPM_CONFIG_EXTRA=auth_token

EDIT

Кажется, что проблема снова возникла для Nodejs10 ссылка

0 голосов
/ 12 февраля 2020

Это не проблема с облачными функциями, однако, похоже, в настоящее время есть общая ошибка с npmjs .org, вы можете проверить это на форумах, таких как этот по порядку чтобы увидеть больше.

Попробуйте еще раз, когда проблема в npmjs .org исчезнет.

Надеюсь, вы найдете это полезным!

...