NodeJS 如何将云函数v1升级到v2?

slsn1g29  于 2023-06-29  发布在  Node.js
关注(0)|答案(1)|浏览(140)

我想尝试将我的v1云功能升级到v2。
本来这是我的职责

import * as functions from "firebase-functions";
const express = require("express");
const app = express();
app.post(...);

exports.functionName = functions.region("asia-southeast2").https.onRequest(app);

现在我把它升级到v2。由于v2函数名不能包含任何大写字母,我将其更改为[“function-name”]

import * as functions from "firebase-functions/v2";
const express = require("express");
const app = express();
app.post(...);

exports["function-name"] = functions.https.onRequest({region: "asia-southeast2"}, app);

部署时,我收到此错误。我不知道这是什么意思,这是非常混乱。
i功能:创建Node.js 16(2nd Gen)函数on-function:function-name(asia-southeast 2)...无法创建或更新Cloud Run服务function-name,容器运行状况检查失败。版本“function-name-00001-taz”未就绪,无法提供流量。用户提供的容器无法启动和侦听由PORT=8080环境变量提供的端口。此版本的日志可能包含更多信息。
日志URL:https://console.cloud.google.com/logs/viewer?xxxxxxxx有关更多故障排除指导,请参阅https://cloud.google.com/run/docs/troubleshooting#container-failed-to-start
打开日志浏览器从上述链接,我得到这个消息

Function 'function.name' is not defined in the provided module.
Did you specify the correct target function to execute?
Could not load the function, shutting down.

如何将当前的v1云功能升级到v2?

r7s23pms

r7s23pms1#

我复制了documentation之后的确切问题。首先,我成功部署了cloud function1st gen。后来,当我尝试部署函数名为“function-name”的2nd gen时,遇到了同样的问题。但是我能够成功地部署一个名为“functionname”或“function_name”的函数。这可能是由于使用hyphen(-)firebase functions中的错误。所以我建议你使用小写或下划线的名字。
示例:

exports.function_name = functions.https.onRequest({region: "asia-southeast2"}, app);
Or 
exports.functionname = functions.https.onRequest({region: "asia-southeast2"}, app);

也可以在public issue tracker中提出bug

相关问题