0

这段代码,我从 Amazon Neptune 教程https://docs.aws.amazon.com/neptune/latest/userguide/access-graph-gremlin-python.html 获得但是,当我尝试运行时出现这样的错误Jupyter Notebook 中的代码(我的笔记本电脑内部)。 这是我的代码

---------------------------------------------------------------------------
HTTPError                                 Traceback (most recent call last)
<ipython-input-1-fae80b27d2c6> in <module>
     12 g = graph.traversal().withRemote(remoteConn)
     13 
---> 14 print(g.V().limit(2).toList())
     15 
     16 remoteConn.close()

C:\ProgramData\Anaconda3\lib\site-packages\gremlin_python\process\traversal.py in toList(self)
     56 
     57     def toList(self):
---> 58         return list(iter(self))
     59 
     60     def toSet(self):

C:\ProgramData\Anaconda3\lib\site-packages\gremlin_python\process\traversal.py in __next__(self)
     46     def __next__(self):
     47         if self.traversers is None:
---> 48             self.traversal_strategies.apply_strategies(self)
     49         if self.last_traverser is None:
     50             self.last_traverser = next(self.traversers)

C:\ProgramData\Anaconda3\lib\site-packages\gremlin_python\process\traversal.py in apply_strategies(self, traversal)
    571     def apply_strategies(self, traversal):
    572         for traversal_strategy in self.traversal_strategies:
--> 573             traversal_strategy.apply(traversal)
    574 
    575     def apply_async_strategies(self, traversal):

C:\ProgramData\Anaconda3\lib\site-packages\gremlin_python\driver\remote_connection.py in apply(self, traversal)
    147     def apply(self, traversal):
    148         if traversal.traversers is None:
--> 149             remote_traversal = self.remote_connection.submit(traversal.bytecode)
    150             traversal.remote_results = remote_traversal
    151             traversal.side_effects = remote_traversal.side_effects

C:\ProgramData\Anaconda3\lib\site-packages\gremlin_python\driver\driver_remote_connection.py in submit(self, bytecode)
     54 
     55     def submit(self, bytecode):
---> 56         result_set = self._client.submit(bytecode, request_options=self._extract_request_options(bytecode))
     57         results = result_set.all().result()
     58         side_effects = RemoteTraversalSideEffects(result_set.request_id, self._client,

C:\ProgramData\Anaconda3\lib\site-packages\gremlin_python\driver\client.py in submit(self, message, bindings, request_options)
    125 
    126     def submit(self, message, bindings=None, request_options=None):
--> 127         return self.submitAsync(message, bindings=bindings, request_options=request_options).result()
    128 
    129     def submitAsync(self, message, bindings=None, request_options=None):

C:\ProgramData\Anaconda3\lib\site-packages\gremlin_python\driver\client.py in submitAsync(self, message, bindings, request_options)
    146         if request_options:
    147             message.args.update(request_options)
--> 148         return conn.write(message)

C:\ProgramData\Anaconda3\lib\site-packages\gremlin_python\driver\connection.py in write(self, request_message)
     53     def write(self, request_message):
     54         if not self._inited:
---> 55             self.connect()
     56         request_id = str(uuid.uuid4())
     57         result_set = resultset.ResultSet(queue.Queue(), request_id)

C:\ProgramData\Anaconda3\lib\site-packages\gremlin_python\driver\connection.py in connect(self)
     43             self._transport.close()
     44         self._transport = self._transport_factory()
---> 45         self._transport.connect(self._url, self._headers)
     46         self._protocol.connection_made(self._transport)
     47         self._inited = True

C:\ProgramData\Anaconda3\lib\site-packages\gremlin_python\driver\tornado\transport.py in connect(self, url, headers)
     38         if headers:
     39             url = httpclient.HTTPRequest(url, headers=headers)
---> 40         self._ws = self._loop.run_sync(
     41             lambda: websocket.websocket_connect(url, compression_options=self._compression_options))
     42 

~\AppData\Roaming\Python\Python38\site-packages\tornado\ioloop.py in run_sync(self, func, timeout)
    456         if not future_cell[0].done():
    457             raise TimeoutError('Operation timed out after %s seconds' % timeout)
--> 458         return future_cell[0].result()
    459 
    460     def time(self):

~\AppData\Roaming\Python\Python38\site-packages\tornado\concurrent.py in result(self, timeout)
    236         if self._exc_info is not None:
    237             try:
--> 238                 raise_exc_info(self._exc_info)
    239             finally:
    240                 self = None

~\AppData\Roaming\Python\Python38\site-packages\tornado\util.py in raise_exc_info(exc_info)

~\AppData\Roaming\Python\Python38\site-packages\tornado\stack_context.py in wrapped(*args, **kwargs)
    314             if top is None:
    315                 try:
--> 316                     ret = fn(*args, **kwargs)
    317                 except:
    318                     exc = sys.exc_info()

~\AppData\Roaming\Python\Python38\site-packages\tornado\simple_httpclient.py in _on_timeout(self, info)
    305         error_message = "Timeout {0}".format(info) if info else "Timeout"
    306         if self.final_callback is not None:
--> 307             raise HTTPError(599, error_message)
    308 
    309     def _remove_timeout(self):

HTTPError:HTTP 599:连接时超时

这是我得到的错误。我应该怎么办?

4

1 回答 1

0

Amazon Neptune 在私有 VPC 内运行。这意味着您将无法从笔记本电脑连接到它,除非您设置了连接到 VPC 的方法。这可以通过通过堡垒主机设置 ssh 隧道、ssh 端口转发或其他方式(例如客户端 VPN)来完成。这是一个如何为 Document DB 执行此操作的示例,它与 Neptune 基本相同,只是 Neptune 使用端口 8182。

https://docs.aws.amazon.com/documentdb/latest/developerguide/connect-from-outside-a-vpc.html

于 2021-01-27T05:01:52.943 回答