我正在进行api.ai tutorial的基本实现和会话设置教程,以制作聊天机器人,当我尝试使用命令部署该功能时:
var dateNow = new Date();
dateNow.setUTCHours(0,0,0,0);
var dateToISO = dateNow.toISOString();
(其中' venky-bb7c4.appspot.com'是bucket_name) 它返回以下错误消息:
gcloud beta functions deploy --stage-bucket venky-bb7c4.appspot.com --trigger-http
我已搜索但未找到任何答案,我不知道错误在哪里。 这是教程中出现的JS文件:
ERROR: (gcloud.beta.functions.deploy) OperationError: code=3, message=Source code size exceeds the limit
答案 0 :(得分:3)
该命令使用当前目录的整个内容(node_modules子目录除外)创建zip,而不仅仅是JS文件(这是因为您的函数可能使用其他资源)。
您看到的错误是因为目录中(未压缩)文件的大小超过512MB。
解决此问题的最简单方法是将.js文件移动到自己的目录并从那里进行部署(如果希望工作目录不同,可以使用--local-path
指向包含源文件的目录来自具有功能源的目录。)
答案 1 :(得分:1)
这些都不适合我。我能够解决这个问题的方法是确保我从项目目录(包含index.js的目录)运行部署
答案 2 :(得分:0)
我尝试使用源选项或从 index.js 文件夹部署,但仍然存在不同的问题。
如果上传的代码很大,通常会发生此错误。在我的测试中,我发现超过 100MB 会导致上述错误。
然而, 要解决此问题,有两种解决方案。
gsutil mb my-cloud-functions-deployment-bucket
<块引用>
您创建的存储桶必须是唯一的,否则它会抛出已经创建的
gcloud 函数部署subscribers-firestoreDatabaseChange
--trigger-topic firestore-database-change
--region us-central1
--runtime nodejs10
--update-env-vars "REDIS_HOST=10.128.0.2"
--stage-bucket my-cloud-functions-deployment-bucket
答案 3 :(得分:0)
我在部署云功能时遇到了类似的问题。对我有用的是指定 js 文件源文件夹。
gcloud functions deploy functionName --trigger-http **--source path_to_project_root_folder**
还要确保在 .gcloudignore 中包含所有不必要的文件夹。
答案 4 :(得分:-1)
确保包文件夹具有.gitignore文件(不包括node_modules)。
最新版本的gcloud需要它才能加载node_modules。我的代码大小从119MB增加到17Kb。
一旦我添加了.gitignore文件,也会打印日志
created .gcloudignore file. See `gcloud topic gcloudignore` for details.