GCloud Functions debugging deployment failure

2019-07-16 19:09发布

问题:

Just started using GCloud Functions today, and I am having a problem. I've updated one of my projects to be function-ready and used google's local-emulator (@google-cloud/functions-emulator) to debug and test my new function. Everything went well and emulator deployment went just fine. ```

$ 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.

```

But when i try to do the same thing using the actual gcloud beta functions I get a build error without any reason or obvious way to debug it:

```

$ 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

```

In the GClould logs I'm not getting any other details either ==> https://pastebin.com/6H7DRkE8

How can I debug this deployment issue?

回答1:

After some more research, I've found a way to debug the deployment process. The gcloud tool comes with a set of options which are not easily to spot but offer features like verbosity. And that's what you need for debugging the deployment process. Find all the options here: https://cloud.google.com/sdk/gcloud/reference/alpha/functions/deploy (bottom of the page)

In my case, the issue was a private NPM repo which for sure, couldn't be checkout due to lack of permissions.

gcloud beta functions deploy <NAME> --stage-bucket <BUCKET> --verbosity debug



回答2:

I just had this same issue and it was caused by a typo in a module name in package.json/dependencies.