Firebase的云功能 - getaddrinfo ENOTFOUND

时间:2017-03-13 22:45:11

标签: node.js firebase paypal dns google-cloud-functions

尝试使用PayPal-node-SDK

向Paypal的API发出请求
exports.requestPayment = functions.https.onRequest((req, res) => {
    return new Promise(function (fullfilled, rejected) {
        paypal.payment.create(create_payment_json, {}, function (error, payment) {
            if (error) {
                rejected(error);
            } else {
                console.log("Create Payment Response");
                console.log(payment);
                res.status(200).send(JSON.stringify({
                    paymentID: payment.id
                })).end();
                fullfilled(payment);
            }
        });
     });
});

但我经常收到错误:

Error: getaddrinfo ENOTFOUND api.sandbox.paypal.com api.sandbox.paypal.com:443
    at errnoException (dns.js:28:10)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)

我尝试过的事情:

  1. 向完全不同的主机发出请求,仍然是ENOTFOUND
  2. 使用cors(req,res, ()=>{...})
  3. 包装请求
  4. https://添加到主机
  5. 有什么问题?

5 个答案:

答案 0 :(得分:99)

您需要制定付费计划才能提出外部API请求。

Firebase的Blaze计划(按需付费)可以免费分配云功能。 https://firebase.google.com/pricing/

答案 1 :(得分:1)

在我的情况下,我不得不等待,让过去发生的一切滞后过去。现在又可以了。

答案 2 :(得分:1)

我遇到这个问题是因为互联网弱,请更改互联网连接。

答案 3 :(得分:0)

您需要在管理员初始化中包括服务帐户。这为我解决了相同的问题

答案 4 :(得分:0)

切换到Firebase“大火”计划,该计划将在产生任何费用之前包括free usage tier of the Spark plan。使用Blaze pricing calculator查看给定使用费用。

前5 GB的出站(出口)网络是免费的,这与“本地” Google Cloud Functions would give you相同。