微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法解析从 AWS Lambda 到 Neo4j 数据库的连接

如何解决无法解析从 AWS Lambda 到 Neo4j 数据库的连接

大家晚上好,

我正在尝试通过 lambda 函数访问托管在 EC2 机器上的 neo4j 数据库。 一切运行顺利,但奇怪的是驱动程序会话中的所有代码都没有执行。我已经在连接到本地 Neo4j 实例的本地机器上测试了这段代码,一切正常。

这是一段有问题的代码,请注意代码不完整,但我希望它能让您了解它应该如何运行。

def lambda_handler(event,context):


    # **This code runs** 

    message = (event['Records'][0]['Sns']['Message'])
    data = unpack(message)
    print('----------MESSAGE \n\n')
    print(message)
    print('----------DATA \n\n')
    print(data)
    
    
    preprocessor = Preprocessor(data)
    events = preprocessor.preprocess_events()
    print('----------EVENTS \n\n')
    print(events)
    
    driver = GraphDatabase.driver("bolt://54.229.49.225:7687",auth=('neo4j','hello'))
    
    with driver.session() as session:
        
        # **This code doesn't** 
        
        print('-----------------opening SESSION-----------------')
        session.write_transaction(tx1)
        session.write_transaction(tx2)
        session.write_transaction(tx3)

    driver.close()

    return {
        'statusCode': 200,'body': json.dumps('Loaded event <EVENT NAME>')
    }

---编辑---

增加我的 lambda 函数的超时计时器后,我现在得到一个不同的错误

Function Logs
START RequestId: 09235331-d238-4150-a489-5da005858596 Version: $LATEST
Ciao
[ERROR] ServiceUnavailable: Timed out trying to establish connection to IPv4Address(('54.229.49.225',7687))
Traceback (most recent call last):
  File "/var/task/lambda_function.py",line 18,in lambda_handler
    driver = GraphDatabase.driver("bolt://54.229.49.225:7687",'hello'))
  File "/var/task/neo4j/__init__.py",line 183,in driver
    return cls.bolt_driver(parsed.netloc,auth=auth,**config)
  File "/var/task/neo4j/__init__.py",line 196,in bolt_driver
    return BoltDriver.open(target,line 359,in open
    pool = BoltPool.open(address,pool_config=pool_config,workspace_config=default_workspace_config)
  File "/var/task/neo4j/io/__init__.py",line 535,in open
    seeds = [pool.acquire() for _ in range(pool_config.init_size)]
  File "/var/task/neo4j/io/__init__.py",in <listcomp>
    seeds = [pool.acquire() for _ in range(pool_config.init_size)]
  File "/var/task/neo4j/io/__init__.py",line 549,in acquire
    return self._acquire(self.address,timeout)
  File "/var/task/neo4j/io/__init__.py",line 413,in _acquire
    connection = self.opener(address,line 532,in opener
    return Bolt.open(addr,timeout=timeout,routing_context=routing_context,**pool_config)
  File "/var/task/neo4j/io/__init__.py",line 193,in open
    s,pool_config.protocol_version,handshake,data = connect(
  File "/var/task/neo4j/io/__init__.py",line 1052,in connect
    raise last_error
  File "/var/task/neo4j/io/__init__.py",line 1042,in connect
    s = _connect(resolved_address,timeout,keep_alive)
  File "/var/task/neo4j/io/__init__.py",line 940,in _connect
    raise ServiceUnavailable("Timed out trying to establish connection to {!r}".format(resolved_address))END RequestId: 09235331-d238-4150-a489-5da005858596
REPORT RequestId: 09235331-d238-4150-a489-5da005858596  Duration: 30033.06 ms   Billed Duration: 30034 ms   Memory Size: 256 MB Max Memory Used: 111 MB

这表明虽然我能够从本地计算机成功运行相同的脚本,但可能存在一些连接问题

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。