我正在尝试编写要在 Firebase Cloud Functions 中部署的 Node.js 函数。我正在编写的函数需要使用faker.js来帮助创建模拟测试数据。
Could not create or update Cloud Run service createfakeprofiles, Container Healthcheck failed. Revision 'createfakeprofiles-00006-moh' is not ready and cannot serve traffic. The user-provided container failed to start and listen on the port defined provided by the PORT=8080 environment variable. Logs for this revision might contain more information.
Logs URL: https://console.cloud.google.com/logs/viewer?project=test-app&resource=cloud_run_revision/service_name/createfakeprofiles/revision_name/createfakeprofiles-00006-moh&advancedFilter=resource.type%3D%22cloud_run_revision%22%0Aresource.labels.service_name%3D%22createfakeprofiles%22%0Aresource.labels.revision_name%3D%22createfakeprofiles-00006-moh%22
For more troubleshooting guidance, see https://cloud.google.com/run/docs/troubleshooting#container-failed-to-start
我仔细查看了日志,这就是输出:
createfakeprofiles: Detailed stack trace: Error: Cannot find module '@faker-js/faker'
2024-03-09T02:57:32.133007Z ? createfakeprofiles: Require stack:
2024-03-09T02:57:32.133013Z ? createfakeprofiles: - /workspace/index.js
2024-03-09T02:57:32.133020Z ? createfakeprofiles: - /layers/google.nodejs.functions-framework/functions-framework/node_modules/@google-cloud/functions-framework/build/src/loader.js
2024-03-09T02:57:32.133029Z ? createfakeprofiles: - /layers/google.nodejs.functions-framework/functions-framework/node_modules/@google-cloud/functions-framework/build/src/main.js
2024-03-09T02:57:32.133043Z ? createfakeprofiles: at Module._resolveFilename (node:internal/modules/cjs/loader:1134:15)
2024-03-09T02:57:32.133049Z ? createfakeprofiles: at Module._load (node:internal/modules/cjs/loader:975:27)
2024-03-09T02:57:32.133056Z ? createfakeprofiles: at Module.require (node:internal/modules/cjs/loader:1225:19)
2024-03-09T02:57:32.133062Z ? createfakeprofiles: at require (node:internal/modules/helpers:177:18)
2024-03-09T02:57:32.133069Z ? createfakeprofiles: at Object.<anonymous> (/workspace/index.js:14:17)
2024-03-09T02:57:32.133075Z ? createfakeprofiles: at Module._compile (node:internal/modules/cjs/loader:1356:14)
2024-03-09T02:57:32.133082Z ? createfakeprofiles: at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
2024-03-09T02:57:32.133087Z ? createfakeprofiles: at Module.load (node:internal/modules/cjs/loader:1197:32)
2024-03-09T02:57:32.133093Z ? createfakeprofiles: at Module._load (node:internal/modules/cjs/loader:1013:12)
2024-03-09T02:57:32.133100Z ? createfakeprofiles: at Module.require (node:internal/modules/cjs/loader:1225:19)
2024-03-09T02:57:32.133387Z ? createfakeprofiles: Could not load the function, shutting down.
2024-03-09T02:57:32.702663418Z W createfakeprofiles: Container called exit(1).
我的package.json:
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"lint": "eslint .",
"serve": "firebase emulators:start --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "18"
},
"main": "index.js",
"dependencies": {
"@faker-js/faker": "^8.4.1",
"@google-cloud/secret-manager": "^5.1.0",
"firebase-admin": "^11.8.0",
"firebase-functions": "^4.3.1"
},
"devDependencies": {
"@faker-js/faker": "^8.4.1",
"eslint": "^8.15.0",
"eslint-config-google": "^0.14.0",
"firebase-functions-test": "^3.1.0"
},
"private": true
}
我已确保安装 faker 并且它显示在我的依赖项中,但我无法弄清楚这些错误来自何处。
我还确保我在正确的位置运行安装命令:
functions/
- node_modules/
- index.js
- package.json
faker 列在
packages.json
中,那么我这里哪里出错了?
在尝试了这里列出的所有潜在解决方案之后,这实际上是最后一个为我做到的解决方案。我已将
@faker-js/faker
包含在我的 dependencies
AND devDependencies
中,所以我将其从 devDependencies
中删除,问题就解决了。