gCloud:根目录中不存在文件index.js

时间:2017-07-26 04:30:26

标签: google-cloud-datastore google-cloud-platform gcloud

我是Gcloud的第一次使用者。当我运行以下命令时:

gcloud beta functions deploy FirstBot --stage-bucket [BUCKET_NAME] --trigger-http

我在cmd中收到此错误:

ERROR: (gcloud.beta.functions.deploy) OperationError: code=3, message=Function l
oad error: File index.js or function.js that is expected to define function does
n't exist in the root directory.

我试过2个index.js文件: 这是第1号:

   /*
 HTTP Cloud Function.

 @param {Object} req Cloud Function request context.
 @param {Object} res Cloud Function response context.
*/
exports.FirstBot = function FirstBot (req, res) {
  response = "This is a sample response from your webhook!" //Default response from the webhook to show it's working

res.setHeader('Content-Type', 'application/json'); //Requires application/json MIME type
  res.send(JSON.stringify({ "speech": response, "displayText": response 
  //"speech" is the spoken version of the response, "displayText" is the visual version
  }));
};

这是第二个:

/
 HTTP Cloud Function.

 @param {Object} req Cloud Function request context.
 @param {Object} res Cloud Function response context.
*/
exports.helloHttp = function helloHttp (req, res) {
  response = "This is a sample response from your webhook!" //Default response from the webhook to show it's working

res.setHeader('Content-Type', 'application/json'); //Requires application/json MIME type
  res.send(JSON.stringify({ "speech": response, "displayText": response 
  //"speech" is the spoken version of the response, "displayText" is the visual version
  }));
};

我的项目名称是FirstBot。 我也创造了一个水桶。

我的FirstBot文件夹的路径是C:\ FirstBot。 index.js文件在里面。 我正在按照教程:https://api.ai/docs/getting-started/basic-fulfillment-conversation

请帮助......不胜感激!

7 个答案:

答案 0 :(得分:1)

我通过为JavaScript安装npm解决了这个问题。

答案 1 :(得分:0)

您已超过Max deployment size限制。来自Resource Limits

enter image description here

检查项目目录的内容,你可能会有不受欢迎的东西。

答案 2 :(得分:0)

命令gcloud beta functions deploy FirstBot --stage-bucket [BUCKET_NAME] --trigger-http将通过创建包含运行命令的目录内容的zip文件来部署名为FirstBot的函数。

要使部署工作,您应该:

  • 当您在C:\FirstBot
  • 时运行该命令
  • --source C:\FirstBot添加到您的gcloud调用中,让gcloud知道您的源代码位于不同的目录中。

答案 3 :(得分:0)

通过控制台向项目添加存储桶解决了它。

答案 4 :(得分:0)

.gitignore中的文件是? If a .gcloudignore isn't specified, the .gitignore is used to ignore files.

添加空.gcloudignore应解决此问题。

答案 5 :(得分:0)

如果您没有从index.js所在的同一文件夹中运行deploy命令,也会发生该错误。即只是“找不到文件”。

答案 6 :(得分:0)

II 遇到了类似的问题,对我来说解决方案很容易应用但很难找到。 万一有人可以帮忙。我注意到我的 .gcloudignore 有这条线

#!include:.gitignore

和我的 .gitignore 这两个

# Compiled JavaScript files    
**/*.js
**/*.js.map

因此 .js 文件被忽略并且 gcloud 找不到 index.js。

由于我不希望编译后的文件在存储库中,因此我删除了 .gcloudignore 中的包含并直接添加了特定的忽略,例如 node_modules 和敏感数据