我在处理程序函数中的AWS Lambda中运行以下内容:
URL url = new URL("www.sfsuperiorcourt.org");
URLConnection connection = url.openConnection();
connection.setConnectTimeout(2000);
connection.connect();
这是一个处理函数。在本地运行时,它很好,并立即连接,我能够检索内容。在Lambda上,它以java.net.SocketTimeoutException: connect timed out
失败。如果我没有在连接上设置超时,Lambda本身会在10秒后超时。这种情况一直发生,并且在我的本地机器上,它始终如一,所以我确定它与我连接的网站没有问题。
我能够在Lambda上成功进行IP地址解析,因此不是问题所在。似乎与打开套接字完全相关。
也许我的角色需要获得打开套接字的权限?还有其他明显的东西吗?调试TCP层的任何已知方法?