Firebase 云功能:ECONNREFUSED

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

我正在尝试使用 Typescript 优化 firebase 云功能的网络,例如here

const http = require('http'); const functions = require('firebase-functions'); const agent = new http.Agent({keepAlive: true}); export const getXXX = functions.https.onRequest((request, response) => { const req = http.request({ host: 'localhost', port: 443, path: '', method: 'GET', agent: agent, }, res => { let rawData = ''; res.setEncoding('utf8'); res.on('data', chunk => { rawData += chunk; }); res.on('end', () => { response.status(200).send(`Data: ${rawData}`); }); }); req.on('error', e => { response.status(500).send(`Error: ${e.message}`); }); req.end(); });

但我不断得到

错误:连接ECONNREFUSED 127.0.0.1:443

我对 TypeScript 和 js 不太熟悉,所以请帮助我。

另一个问题 res.on 'Data' 何时被触发?

typescript firebase google-cloud-functions
4个回答
1
投票
事实证明,我需要付费计划才能从我的函数内部发出外部 HTTP 请求。


0
投票
您无法访问 Cloud Functions 中“localhost”(127.0.0.1) 上的任何内容。 我怀疑您打算在那里放置一个不同的主机,并确保您的项目位于 Blaze 计划中,以启用与不完全由 Google 控制的服务的传出连接。


0
投票
您可以在本地主机上运行 Cloud Functions。您所需要做的就是运行云服务的本地模拟器。谷歌已经提供了!这是一个非常棒的工具和一个很棒的设置!

针对 Firebase 工具套件执行以下步骤: https://firebase.google.com/docs/functions/local-emulator

对于云工具套件,请执行以下步骤: https://cloud.google.com/functions/docs/emulator

它们非常相似。

您不需要 Blaze 计划,您可以使用“现收现付”计划,其中包括免费套餐配额。 “包含 Spark 计划的免费使用*”

https://firebase.google.com/pricing


0
投票
如果您使用模拟器从另一个云函数调用云函数,请确保您在 http 请求中使用 127.0.0.1: 而不是 localhost:。

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