我在AWS Lambda上使用Java來獲取網站的URL源代碼。我有以下代碼:AWS Lambda - 緩衝讀取器
URL yahoo = new URL(url);
URLConnection yc = yahoo.openConnection();
yc.addRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
BufferedReader in = new BufferedReader(newInputStreamReader(yc.getInputStream(), "UTF-8"));
String inputLine;
StringBuilder a = new StringBuilder();
while ((inputLine = in.readLine()) != null)a.append(inputLine);
in.close();
System.out.println(a.toString());
隨着一些網站的代碼運行精絕。它每次在我的本地機器上運行良好。然而,在AWS上運行LAMBDA時,它卡住以下部分:
BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream(), "UTF-8"));
然後我得到:任務20.00秒後超時。
在lambda日誌中,我得到以下錯誤:
有效載荷:java.nio.HeapByteBuffer [POS = 0 LIM = 115 =帽115]
我的猜測是,它有東西用編碼做什麼?爲什麼一些網站的處理非常好,並且有些網站會停留在那一行代碼上?
非常感謝所有的答案。
其中一些問題可能與AWS運行的VPC有關。檢查您的VPC配置並查看是否有任何設置可以進行微調。 – kosa