【问题标题】:Not able to connect with mongo from AWS lambda functionin python无法从 python 中的 AWS lambda 函数连接 mongodb
【发布时间】:2020-10-16 20:09:06
【问题描述】:

我的 aws lambda 无法通过 VPC 连接到 mongo。

import pymongo

def handler(event, context):
  try:
    client = pymongo.MongoClient(host="xxxxxxx", port=27017, username=x1, password=x2, authsource="x3, authMechanism='SCRAM-SHA-1')
  except pymongo.errors.ServerSelectionTimeoutError as err:
    print(err)

找不到服务器。

我创建了一个安全组,新角色也授予了 VPC 和 lambda 完全访问权限,但无法连接。

https://blog.shikisoft.com/access-mongodb-instance-from-aws-lambda-python/https://blog.shikisoft.com/running-aws-lambda-in-vpc-accessing-rds/ 链接中获得帮助。

请提供帮助。 从昨天开始尝试,但没有运气。

【问题讨论】:

    标签: python mongodb aws-lambda amazon-vpc


    【解决方案1】:

    让我试着帮你找出问题所在。

    1.您的 MongoDB EC2 实例和 Lambda 是否托管在同一个 VPC 上?

    • 如果这是您的问题的原因,您应该将您的服务移到同一个 VPC。

    2。您的安全组是否附加到您的 MongoDB EC2 实例 并且您的 Lambda 已将默认 sg 列入白名单/包括?

    • 您必须将 default sg 包含到您的安全组中,以便该 VPC 中的服务/实例可以通信。

    3.您的主机名是公开访问还是私下访问?

    希望这些答案对您有所帮助。

    【讨论】:

    • 虽然此答案全面解释了调试和解决问题所需的步骤,但不需要添加默认安全组,甚至可能会导致安全问题,因为通常默认安全组会在所有端口上打开入站连接到民众。一个自定义安全组只允许来自 VPC 内的端口 27017(或 Mongo 侦听的任何端口)上的入站连接就足够了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-14
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 2019-11-08
    • 2020-09-02
    • 2019-11-02
    相关资源
    最近更新 更多