我是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
请帮助......不胜感激!
答案 0 :(得分:1)
我通过为JavaScript安装npm解决了这个问题。
答案 1 :(得分:0)
答案 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 和敏感数据