从Cloud Function连接Cloud SQL时持续出现ConnectionResetError错误
GCP Cloud Function跨项目连接Cloud SQL时持续触发ConnectionResetError错误
环境信息
- CF触发器:HTTP
- VPC:已完成两个项目间的配置
- 说明:该Cloud Function在其他项目中运行正常,部署到UAT环境后出现此错误
错误日志
Traceback (most recent call last): File "/layers/google.python.pip/pip/lib/python3.10/site-packages/flask/app.py", line 1463, in wsgi_app response = self.full_dispatch_request() File "/layers/google.python.pip/pip/lib/python3.10/site-packages/flask/app.py", line 872, in full_dispatch_request rv = self.handle_user_exception(e) File "/layers/google.python.pip/pip/lib/python3.10/site-packages/flask/app.py", line 870, in full_dispatch_request rv = self.dispatch_request() File "/layers/google.python.pip/pip/lib/python3.10/site-packages/flask/app.py", line 855, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] File "/layers/google.python.pip/pip/lib/python3.10/site-packages/functions_framework/__init__.py", line 134, in view_func return function(request._get_current_object()) File "/layers/google.python.pip/pip/lib/python3.10/site-packages/functions_framework/__init__.py", line 114, in wrapper return func(*args, **kwargs) File "/workspace/main.py", line 20, in hello_http providers = dx.func1() File "/workspace/database.py", line 67, in func1 with self.pool.connect() as db_conn: File "/layers/google.python.pip/pip/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 3315, in connect return self._connection_cls(self, close_with_result=close_with_result) File "/layers/google.python.pip/pip/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 96, in __init__ else engine.raw_connection() File "/layers/google.python.pip/pip/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 3394, in raw_connection return self._wrap_pool_connect(self.pool.connect, _connection) File "/layers/google.python.pip/pip/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 3361, in _wrap_pool_connect return fn() File "/layers/google.python.pip/pip/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 325, in connect return _ConnectionFairy._checkout(self) File "/layers/google.python.pip/pip/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 888, in _checkout fairy = _ConnectionRecord.checkout(pool) File "/layers/google.python.pip/pip/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 491, in checkout rec = pool._do_get() File "/layers/google.python.pip/pip/lib/python3.10/site-packages/sqlalchemy/pool/impl.py", line 145, in _do_get with util.safe_reraise(): File "/layers/google.python.pip/pip/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__ compat.raise_( File "/layers/google.python.pip/pip/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/layers/google.python.pip/pip/lib/python3.10/site-packages/sqlalchemy/pool/impl.py", line 143, in _do_get return self._create_connection() File "/layers/google.python.pip/pip/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 271, in _create_connection return _ConnectionRecord(self) File "/layers/google.python.pip/pip/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 386, in __init__ self.__connect() File "/layers/google.python.pip/pip/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 684, in __connect with util.safe_reraise(): File "/layers/google.python.pip/pip/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__ compat.raise_( File "/layers/google.python.pip/pip/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/layers/google.python.pip/pip/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 680, in __connect self.dbapi_connection = connection = pool._invoke_creator(self) File "/layers/google.python.pip/pip/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 250, in <lambda> return lambda crec: creator() File "/workspace/database.py", line 32, in getconn conn = connector.connect( File "/layers/google.python.pip/pip/lib/python3.10/site-packages/google/cloud/sql/connector/connector.py", line 154, in connect return connect_task.result() File "/layers/google.python.runtime/python/lib/python3.10/concurrent/futures/_base.py", line 458, in result return self.__get_result() File "/layers/google.python.runtime/python/lib/python3.10/concurrent/futures/_base.py", line 403, in __get_result raise self._exception File "/layers/google.python.pip/pip/lib/python3.10/site-packages/google/cloud/sql/connector/connector.py", line 249, in connect_async return await asyncio.wait_for(get_connection(), timeout) File "/layers/google.python.runtime/python/lib/python3.10/asyncio/tasks.py", line 445, in wait_for return fut.result() File "/layers/google.python.pip/pip/lib/python3.10/site-packages/google/cloud/sql/connector/connector.py", line 245, in get_connection return await self._loop.run_in_executor(None, connect_partial) File "/layers/google.python.runtime/python/lib/python3.10/concurrent/futures/thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) File "/layers/google.python.pip/pip/lib/python3.10/site-packages/google/cloud/sql/connector/pymysql.py", line 53, in connect sock = ctx.wrap_socket( File "/layers/google.python.runtime/python/lib/python3.10/ssl.py", line 513, in wrap_socket return self.sslsocket_class._create( File "/layers/google.python.runtime/python/lib/python3.10/ssl.py", line 1104, in _create self.do_handshake() File "/layers/google.python.runtime/python/lib/python3.10/ssl.py", line 1375, in do_handshake self._sslobj.do_handshake() ConnectionResetError: [Errno 104] Connection reset by peer
此前见过类似问题,但该问题中的错误为间歇性出现,而我的错误在每次执行时都会触发。
内容的提问来源于stack exchange,提问作者Giteshwar Mali
相关产品推荐
相关产品推荐

