У меня есть следующий код, работающий на моем сервере AWS EC2, а также на моем вычислительном движке Google Cloud (GCP) в качестве теста.(Мне нужно списать EC2 для Google)
Telnet работает как из AWS, так и из GCP, но при попытке подключения:
- AWS успешно (получает данные)
- Сбой GCP с «Сброс соединения по одноранговым узлам»
Код, который запускается для теста:
import requests, json
import datetime as dt
epoch_date = int((dt.datetime(2018,2,21) - dt.datetime(1970,1,1)).total_seconds())
url = 'https://www.zacks.com/includes/classes/z2_class_calendarfunctions_data.php?calltype=eventscal&date={}&type=1'.format(epoch_date)
req = requests.get(url)
data = req.text
print(data[0:100])
Исключение, которое я получаю на GCP: (AWS Left, Google Right)
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 376, in send
timeout=timeout
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 610, in urlopen
_stacktrace=sys.exc_info()[2])
File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 247, in increment
raise six.reraise(type(error), error, _stacktrace)
File "/home/karunkrishna/.local/lib/python3.5/site-packages/six.py", line 692, in reraise
raise value.with_traceback(tb)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 560, in urlopen
body=body, headers=headers)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 379, in _make_request
httplib_response = conn.getresponse()
File "/usr/lib/python3.5/http/client.py", line 1197, in getresponse
response.begin()
File "/usr/lib/python3.5/http/client.py", line 297, in begin
version, status, reason = self._read_status()
File "/usr/lib/python3.5/http/client.py", line 258, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/usr/lib/python3.5/socket.py", line 575, in readinto
return self._sock.recv_into(b)
File "/usr/lib/python3.5/ssl.py", line 929, in recv_into
return self.read(nbytes, buffer)
File "/usr/lib/python3.5/ssl.py", line 791, in read
return self._sslobj.read(len, buffer)
File "/usr/lib/python3.5/ssl.py", line 575, in read
v = self._sslobj.read(len, buffer)
requests.packages.urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))
Интересно, указывает ли это на проблему SSL / рукопожатия на сервере Google.Но я не знаю, как это исправить.Не уверен, почему Zacks.com ограничивает Google IP, но не AWS IP.Брандмауэры включены как для AWS, так и для GCP.Любые мысли о том, как я могу это исправить?Или что еще мне стоит изучить?