NodeJS 部署第一代云函数时,获取function.js不存在错误

mwngjboj  于 2022-12-22  发布在  Node.js
关注(0)|答案(1)|浏览(89)

我正在一个node. js(v16)应用中编写一个简单的helloWorld函数,我想使用第一代Google Cloud Functions来部署这个应用(我想最终使用GitHub Webhooks来部署代码)。
第一个月
这是我的代码:
index.js

const crypto = require('crypto');
const got = require('got');
const url = require('url');

const settings = require('settings.json');

/**
 * Responds to any HTTP request.
 *
 * @param {!express:Request} req HTTP request context.
 * @param {!express:Response} res HTTP response context.
 */
exports.helloWorld = (req, res) => {
  let message = req.query.message || req.body.message || 'Hello World!';
  res.status(200).send(message);
};

package.json

{
  "name": "sample-http",
  "version": "0.0.1",
  "dependencies": {
    "got": "^12.5.2",
    "url": "^0.11.0"
  }
}

settings.json

{
  "secretToken": "webhook_token",
  "accessToken": "github access token",
}

此应用程序文件夹还包含package-lock.json文件和node_modules文件夹。
我错过了什么?为什么我总是得到错误Build failed: function.js does not exist; Error ID: 7485c5b6
我已经使用以下方法通过UI部署了它:ZIP from Cloud Storage,还尝试使用以下命令进行部署:gcloud functions deploy helloWorld --runtime nodejs16 --entry-point=index --trigger-http --stage-bucket bucket-name

zkure5ic

zkure5ic1#

我遇到这个问题是因为我正在压缩一个包含文件的文件夹。我需要做的是只突出显示文件,然后选择“压缩”。
此外,如果使用Terraform,您需要确保导出的函数名与entry_point参数值匹配。
google_云函数_函数地形
entry_point = "exampleFunctionName"
index.js导出
exports.exampleFunctionName = (event, context) => {

相关问题