在Node.js应用程序上执行npm Ping。将应用程序部署到Google应用程序引擎后,ICPM不发送

时间:2019-01-30 07:08:29

标签: node.js google-app-engine google-cloud-platform ping icmp

我在Node.js上有票务跟踪应用程序 我将其部署在Google App Engine上,并且可以在以下位置使用: https://ticket-master-230204.appspot.com/

如果我仅在云控制台中运行它,所有功能都将起作用。或在未部署的Amazon Cloud 9中。但是,在我将其部署到App Engine上之后,其中一项功能无法正常工作。而且我不知道为什么。

因此,如果您打开任何票证: https://ticket-master-230204.appspot.com/tickets/5c3c5201afce691354161e08

您会看到Ping功能不起作用。 由于某些原因,我的应用无法接收回声响应。 再一次,如果没有部署,一切都会正常运行。

因此,当您单击故障单时,应该带您显示该特定故障单的页面。 后端此时发生的情况需要主机阵列(基本上是任何主机名或ip地址)并对其进行ping测试。然后它返回一个结果,并基于该结果,主机名是红色或绿色。

我正在使用什么: 1)节点js 2)快递 3)平 4)护照 5)蒙哥 所以下面是显示页面的路线。 我认为应该与增加流量权限有关,但是我允许设置中的所有内容。 App engine Firewall settings

//4. "SHOW" ROUTE.
          app.get("/tickets/:id", async function (req, res) {
          let foundTicket = await Shift.findById(req.params.id).populate("comments").exec()
          let hosts = ( JSON.stringify(foundTicket.fqdn) )
          console.log(hosts)
          let host1 = hosts.substring(2,hosts.length-2).split(',')
          console.log(host1)
          let msg=[];
           await Promise.all(
            host1.map((host) => (
             ping.promise.probe(host)
                    .then(function (res) {
                        console.log(res);
                        msg.push(res);
                         console.log(msg);
                    })              
            ))
          )  ;

我不知道我还能在哪里允许传入的流量到我的应用程序。 提前谢谢大家

1 个答案:

答案 0 :(得分:0)

据我所知,无法在应用程序引擎上使用ICMP,不是我尝试过的。我为此找到的唯一参考是Link,这是一个非常古老的答案。关于出站请求协议Link,有一些针对其他语言的文档,但没有针对node.js的文档。希望这会有所帮助。