2017-12-30 18 views
0

Ich habe die GitHub auto-deployer für Google Cloud-Funktionen installiert, aber wenn ich jetzt meine Funktion in meine GitHub-Repository pushen, erhalte ich eine abstrakte Fehlermeldung "The request has errors" mit eher nicht -Descript Details. Was könnte hier besonders schief gehen?Google Cloud-Funktionen GitHub Auto-Deployer sagt: Die Anfrage hat Fehler

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 Die Nennung von google-auth-library in dem Stack-Trace machte ich denken, dass etwas mit meinen Anmeldeinformationen falsch sein kann. Aber die Ausgabe von gcloud auth list in Ordnung erscheint:

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

UPDATE Was vielleicht etwas unkonventionell ist, dass ich in meinem "path":"",config.json. Aber dann befindet sich meine index.js direkt an der Spitze meines Repositorys, daher gibt es keinen Pfad zum Angeben.

UPDATEThis ist, wo der Fehler von Google Cloud-Funktionen wird durch githubAutoDeployer weitergegeben (leider Quellcode für den Upstream-Server ist offenbar nicht verfügbar):

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); 
    } 

Antwort

0

Das Problem war, dass ich "location" : "us-central" wurde spezifiziert anstelle von us-central1 (welche supports Google Cloud Functions) in meinem config.json.

Ich fand heraus, indem ich eine rohe POST-Anfrage an die Google Cloud Functions API (nach Erhalt eines Dienstkontos und Zugriffstoken, etc.) senden. Auf dieser Ebene gibt die API eine klare Fehleranzeige:

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

Offensichtlich und leider ist dies nicht der Protokolldateien ein, wenn githubAutoDeployer den gleichen Anruf versucht.

Verwandte Themen