有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何从AWS获取对本地主机客户端的响应?

如果我的应用程序作为ECS容器在AWS上运行,它将把响应发送回url,我们将把它作为解决方案url传递。我的问题是,如果我们在解决方案url中传递localhost(客户端在本地计算机上运行)url,我们需要更改哪些网络配置才能获得响应


共 (1) 个答案

  1. # 1 楼答案

    那是行不通的

    您正在向AWS中的应用程序传递一个解决方案URL,并希望它响应该URL。基本上,AWS将使用DNS服务器解析给定的URL,并向给定的IP发送响应

    如果您将localhost作为URL发送到AWS,它也会尝试解析它,但是由于localhost已经在/etc/hosts中定义为127.0.0.1,它将直接将请求发送到自身

    你可以做你想做的,但这会比仅仅发送一个URL有点混乱

    首先,您需要配置路由器,以便将所有来自internet的传入流量转发到您正在讨论的客户端。之后,您需要检查机器的公共IP,并将其提供给AWS服务

    例如,假设我正在使用前面提到的AWS服务,并且我已经配置了我的路由器,所以所有对公共IP的传入请求都被重定向到我的机器的任意端口(例如5000)

    1. 我需要获得我的公共IP,一个简单的方法是通过GET请求ifconfig.me
    2. 我将该URL提供给AWS容器,例如通过PathParams:https://myawscontainer.aws.com/serviceA?solutionURL=[HERE_GOES_MY_IP]
    3. 容器中的任务完成后,AWS容器将请求[HERE_GOES_MY_IP]:80或任何其他端口,具体取决于您如何配置容器以在之后执行请求
    4. 如果我已将路由器配置为将端口80中的任何请求转发到端口5000中的机器,我将在配置的端口上接收本地机器上的AWS请求

    当然,如果您的公共IP是静态的,那么您可以得到一个指向该IP的域,或者甚至可以使用开源解决方案在路由器内设置动态DNS,如pfSense