Google Cloud Functions GitHub auto-deployer says: The request has errors

五迷三道 提交于 2019-12-11 17:22:28

问题


I have installed the GitHub auto-deployer for Google Cloud Functions, but when I now push my function into my GitHub repository, I receive an abstract error message "The request has errors" with the following rather non-descript details. What could specifically be going wrong here?

E      githubAutoDeployer  [CODE]  2017-12-30 19:19:37.362  
Failed to create function projects/[MY_BUCKET]/locations/us-central/functions/[MY_FUNCTION] { Error: The request has errors
at Request._callback (/user_code/node_modules/googleapis/node_modules/google-auth-library/lib/transporters.js:85:15)
at Request.self.callback (/user_code/node_modules/googleapis/node_modules/request/request.js:186:22)
at emitTwo (events.js:106:13)
at Request.emit (events.js:191:7)
at Request.<anonymous> (/user_code/node_modules/googleapis/node_modules/request/request.js:1163:10)
at emitOne (events.js:96:13)
at Request.emit (events.js:188:7)
at IncomingMessage.<anonymous> (/user_code/node_modules/googleapis/node_modules/request/request.js:1085:12)
at IncomingMessage.g (events.js:292:16)
at emitNone (events.js:91:20)
code: 400,
errors:
[ { message: 'The request has errors',                                                               
    domain: 'global',                                          
    reason: 'badRequest' } ] }
E      githubAutoDeployer  [CODE]  2017-12-30 19:19:37.363  Error: The request has errors
at Request._callback (/user_code/node_modules/googleapis/node_modules/google-auth-library/lib/transporters.js:85:15)
at Request.self.callback (/user_code/node_modules/googleapis/node_modules/request/request.js:186:22)
at emitTwo (events.js:106:13)
at Request.emit (events.js:191:7)
at Request.<anonymous> (/user_code/node_modules/googleapis/node_modules/request/request.js:1163:10)
at emitOne (events.js:96:13)
at Request.emit (events.js:188:7)
at IncomingMessage.<anonymous> (/user_code/node_modules/googleapis/node_modules/request/request.js:1085:12)
at IncomingMessage.g (events.js:292:16)
at emitNone (events.js:91:20)
D      githubAutoDeployer  [CODE]  2017-12-30 19:19:37.365  
Function execution took 2319 ms, finished with status code: 500

UPDATE The mentioning of google-auth-library in the stack trace made me think that something may be wrong with my credentials. But the output from gcloud auth list appears alright:

Credentialed Accounts
ACTIVE  ACCOUNT
*       [MY_ID]@gmail.com

UPDATE What is perhaps slightly unconventional is that I have "path":"", in my config.json. But then my index.js resides directly at the top of my repository, so there is no path to specify.

UPDATE This is where the error from Google Cloud Functions is passed on by githubAutoDeployer (unfortunately source code for the upstream server is apparently not available):

gcf.projects.locations.functions.create({ resource, location }, (err, operation) => {
  if (err && err.errors && err.errors[0] && err.errors[0].reason === 'alreadyExists') {
    // ...
  } else if (err) {
    console.error(`Failed to create function ${resource.name}`, err);
    reject(err);
  }

回答1:


The trouble was that I was specifying "location" : "us-central" instead of us-central1 (which supports Google Cloud Functions) in my config.json.

I found out by sending a raw POST request to the Google Cloud Functions API (after obtaining a service account and access token, etc.). At this level the API returns a clear error indication:

"fieldViolations": [
  {
    "field": "region",
    "description": "region us-central is not supported."
  }
]

Apparently and unfortunately this does not enter any of the log files when githubAutoDeployer attempts the same call.



来源:https://stackoverflow.com/questions/48037299/google-cloud-functions-github-auto-deployer-says-the-request-has-errors

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!