今天刚开始使用GCloud Functions
,我遇到了问题。我已经更新了我的一个项目,使其功能就绪,并使用谷歌的local-emulator
(@google-cloud/functions-emulator(来调试和测试我的新功能。一切顺利,模拟器部署也很好。```
$ functions deploy doThing --trigger-http --timeout=540s
Copying file:///var/folders/nw/.../T/us-central1-doThing-....zip...
Waiting for operation to finish...done.
Deploying function.......done.
Function doThing deployed.
'''
但是当我尝试使用实际gcloud beta functions
做同样的事情时,我得到一个构建错误,没有任何理由或明显的方法来调试它:
''
$ gcloud beta functions deploy doThing --stage-bucket test-bucket --trigger-http --timeout=360s
Copying file:///var/folders/nw/.../T/tmpUJvuxd/fun.zip [Content-Type=application/zip]...
| [1 files][ 7.5 MiB/ 7.5 MiB]
Operation completed over 1 objects/7.5 MiB.
Deploying function (may take a while - up to 2 minutes)...failed.
ERROR: (gcloud.beta.functions.deploy) OperationError: code=13, message=Error in the build environment
'''
在 GClould 日志中,我也没有获得任何其他详细信息 ==> https://pastebin.com/6H7DRkE8
如何调试此部署问题?
经过更多的研究,我找到了一种调试部署过程的方法。gcloud
工具带有一组选项,这些选项不容易发现,但提供了verbosity
等功能。这就是调试部署过程所需要的。在此处查找所有选项:https://cloud.google.com/sdk/gcloud/reference/alpha/functions/deploy(页面底部(
就我而言,问题是一个私人 NPM 存储库,由于缺乏权限,可以肯定的是无法签出。
gcloud beta functions deploy <NAME> --stage-bucket <BUCKET> --verbosity debug
我刚刚遇到了同样的问题,这是由package.json/dependencies
中模块名称中的拼写错误引起的。