我正在做api.ai tutorial的基本实现和对话设置教程,以制作一个聊天机器人,当我尝试使用以下命令部署该功能时:
gcloud beta functions deploy --stage-bucket venky-bb7c4.appspot.com --trigger-http(其中‘venky-bb7c4.apppot.com’是bucket_name)它返回以下错误消息:
ERROR: (gcloud.beta.functions.deploy) OperationError: code=3, message=Source code size exceeds the limit我已经搜索了,但没有找到任何答案,我不知道错误在哪里。这是本教程中出现的JS文件:
/
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
}));
};发布于 2017-07-18 00:42:32
该命令使用当前目录(除node_modules子目录之外)的整个内容创建zip,而不仅仅是JS文件(这是因为您的函数可能会使用其他资源)。
您看到的错误是因为目录中(未压缩的)文件的大小大于512MB。
解决此问题的最简单方法是将源文件移动到它自己的目录,并从那里进行部署(如果您希望您的工作目录与包含函数源的目录不同,则可以使用--local-path指向包含源文件的目录)。
发布于 2018-04-04 22:30:09
这两种方法都不适合我。我能够修复这个问题的方法是确保我从我的项目目录(包含index.js的目录)运行部署。
发布于 2020-12-28 16:50:46
我尝试了源代码选项或从index.js文件夹部署,但仍然存在不同的问题。
如果要上传的代码很大,则通常会发生此错误。在我的测试中,我发现超过100MB的内存导致了上述错误。
然而,要解决这个问题,有两种解决方案。
阶段更新存储桶要忽略您的函数不需要的文件夹,
-
创建新的bucket进行部署(一次性)
gsutil mb my-cloud-functions-deployment-bucket您创建的存储桶必须是唯一的,否则它将抛出已经创建的存储桶
部署
gcloud函数部署订阅者-firestoreDatabaseChange
--触发器-主题firestore-数据库-更改
--区域us-central1 1
--运行时nodejs10
--update-env-vars "REDIS_HOST=10.128.0.2“
--stage-bucket my-cloud-functions deployment-bucket
https://stackoverflow.com/questions/45106269
复制相似问题