2017-09-08 1 views
1

J'essaie de déployer une application Node.js sur Google Cloud Functions, mais il semble qu'elle ne télécharge aucune de mes dépendances. Chaque fois que mon code frappe une ligne require, il jette l'erreur suivante:Fonctions Cloud ne téléchargeant pas de dépendances

Deployment failure: 
Function load error: Code in file app.js can't be loaded. 
Did you list all required modules in the package.json dependencies? 
Detailed stack trace: Error: Cannot find module 'googleapis' 
    at Function.Module._resolveFilename (module.js:469:15) 
    at Function.Module._load (module.js:417:25) 
    at Module.require (module.js:497:17) 
    at require (internal/module.js:20:19) 
    at Object.<anonymous> (/user_code/app.js:1:63) 
    at Module._compile (module.js:570:32) 
    at Object.Module._extensions..js (module.js:579:10) 
    at Module.load (module.js:487:32) 
    at tryModuleLoad (module.js:446:12) 
    at Function.Module._load (module.js:438:3) 

Mon bloc package.json dépendances:

"dependencies": { 
    "actions-on-google": "^1.0.9", 
    "body-parser": "^1.15.2", 
    "chai-as-promised": "^6.0.0", 
    "express": "^4.14.0", 
    "express-healthcheck": "^0.1.0", 
    "googleapis": "^19.0.0", 
    "https": "^1.0.0", 
    "istanbul": "^0.4.5", 
    "newrelic": "^1.40.0", 
    "nodemailer": "^4.0.1", 
    "querystring": "^0.2.0", 
    "request": "^2.81.0", 
    "string-format": "^0.5.0", 
    "universal-analytics": "^0.4.13", 
    "xml2js": "^0.4.17" 
    }, 

est-il un moyen de forcer l'installation, ou est-il quelque chose de mal avec la manière Je fais ça? Je n'obtiens aucune erreur en exécutant le paquet functions localement via la commande functions deploy runApp --trigger-http et peux faire tout ce que je veux via mon ordinateur local. L'erreur ne se produit que lorsque vous essayez de le mettre dans le nuage

J'ai aussi essayé via le gcloud beta functions CLI en utilisant le drapeau --verbose comme mentionné dans this answer et j'ai la trace suivante:

DEBUG: (gcloud.beta.functions.deploy) OperationError: code=13, message=Error in the build environment 
Traceback (most recent call last): 
    File "/Users/<username>/google-cloud-sdk/lib/googlecloudsdk/calliope/cli.py", line 789, in Execute 
resources = args.calliope_command.Run(cli=self, args=args) 
    File "/Users/<username>/google-cloud-sdk/lib/googlecloudsdk/calliope/backend.py", line 754, in Run 
resources = command_instance.Run(args) 
    File "/Users/<username>/google-cloud-sdk/lib/surface/functions/deploy.py", line 482, in Run 
return self._UpdateFunction(location, function) 
    File "/Users/<username>/google-cloud-sdk/lib/googlecloudsdk/api_lib/functions/util.py", line 364, in CatchHTTPErrorRaiseHTTPExceptionFn 
return func(*args, **kwargs) 
    File "/Users/<username>/google-cloud-sdk/lib/surface/functions/deploy.py", line 441, in _UpdateFunction 
operations.Wait(op, messages, client, _DEPLOY_WAIT_NOTICE) 
    File "/Users/<username>/google-cloud-sdk/lib/googlecloudsdk/api_lib/functions/operations.py", line 108, in Wait 
_WaitForOperation(client, request, notice) 
    File "/Users/<username>/google-cloud-sdk/lib/googlecloudsdk/api_lib/functions/operations.py", line 83, in _WaitForOperation 
sleep_ms=SLEEP_MS) 
    File "/Users/<username>/google-cloud-sdk/lib/googlecloudsdk/core/util/retry.py", line 212, in RetryOnResult 
result = func(*args, **kwargs) 
    File "/Users/<username>/google-cloud-sdk/lib/googlecloudsdk/api_lib/functions/operations.py", line 47, in _GetOperationStatus 
raise exceptions.FunctionsError(util.GetOperationError(op.error)) 
FunctionsError: OperationError: code=13, message=Error in the build environment 
+0

Essayez de mettre à jour la version du paquet googleapis. La dernière version est 21.3.0, peut-être que c'est quelque chose avec la résolution de paquets. – QuestionAndAnswer

+0

J'ai ajouté comment je l'ai eu fonctionnant ci-dessous mais je pourrais complètement retirer 'googleapis' de mon application et il échouerait juste à la prochaine instruction' require' et dirait que le paquet n'était pas valide. – jbird

Répondre

0

J'ai réussi à il fonctionne en supprimant simplement "express-healthcheck": "^0.1.0". Je ne suis pas sûr de la raison pour laquelle cela a provoqué la rupture, mais comme il s'agit de fonctions Cloud, je n'ai plus vraiment besoin de quelque chose en rapport avec Express, ce qui n'est pas un problème pour mon utilisation.

Si quelqu'un sait pourquoi cela causait une erreur s'il vous plaît envoyer ici, je suis curieux