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

问题描述 投票:0回答:1

我想尝试将我的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(第二代)函数 on-function:function-name(asia-southeast2)...无法创建或 更新 Cloud Run 服务函数名称,容器运行状况检查失败。 修订版“function-name-00001-taz”尚未准备就绪,无法提供服务 交通。用户提供的容器无法启动并侦听 由 PORT=8080 环境变量提供的端口定义。日志为 此修订版可能包含更多信息。

日志网址: 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?

node.js firebase google-cloud-functions
1个回答
3
投票

我按照文档重现了确切的问题。首先我成功部署了第一代云功能。后来,在尝试部署函数名称为

function-name
的第二代函数时,我遇到了同样的问题。但我能够成功部署名为
functionname
function_name
的函数。这可能是由于 firebase 函数中使用连字符 (-) 的错误造成的。所以我建议您使用小写或下划线的名称。

示例:

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

或者

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

也可以随时在 公共问题跟踪器中提出错误。

© www.soinside.com 2019 - 2024. All rights reserved.