Docs 菜单
Docs 主页
/
MongoDB Atlas
/

使用 AWS Lambda 管理连接

在此页面上

  • 最佳实践
  • 连接示例
  • AWS IAM 身份验证
  • 其他身份验证
  • AWS IAM 身份验证
  • 其他身份验证
  • AWS IAM 身份验证
  • 其他身份验证

使用以下最佳实践正确管理 AWS Lambda 之间的连接 和 Atlas:

  • 在 AWS Lambda 处理程序函数之外定义 MongoDB 服务器的客户端。

    请勿在每次调用函数时都定义一个新的 MongoClient 对象。如果这样做,则驱动程序每次函数调用都会创建新的数据库连接。这种方式的成本很高,并可能导致应用程序超过数据库连接限制。在定义新的 MongoClient 时,您应当:

    1. 创建一次 MongoClient 对象。

    2. 存储此对象,以便函数可以在函数调用之间重复使用 MongoClient

    连接示例重复使用现有数据库连接来加快与数据库的通信,并将数据库连接计数保持在相对于应用程序流量的合理水平。

  • 限制对 Atlas 集群的网络访问。

    在 Atlas 集群和 AWS Lambda 函数之间使用网络对等连接私有端点并通过私有网络连接到 Atlas 集群,以便仅允许使用 IP 访问列表中的私有 IP 地址。

    如果不使用私有网络,请考虑通过 NAT 网关 连接到 Atlas 集群 具有映射的弹性 IP 地址。否则,您必须允许所有 IP 地址(0 .0 .0 .0 /0 )访问您的服务集群。

    警告

    0.0.0.0/0添加到您的 IP 访问列表中,这允许从公共互联网中的任何位置访问集群。在允许从任何位置进行访问时,请确保对所有数据库用户使用强式档案。

  • maxIdleTimeMS设置为60000 ,可在1分钟的空闲时间后自动关闭连接。调整maxIdleTimeMS有助于减少无服务器函数发生超时错误的概率。

  • 设置统一 AWS 访问权限,并尽可能使用 AWS IAM 身份验证。

    您可以使用 AWS IAM 角色 连接到 Atlas 集群 而不是在 Lambda 中硬编码您的档案。任何访问您的 AWS Lambda 环境的人都可以查看硬编码凭证,这可能会带来安全风险。使用 AWS IAM 身份验证,Atlas 可通过 假定的 IAM 角色 访问 AWS Lambda ,因此连接字符串中不需要凭证。

    Atlas 支持对运行 MongoDB 5.0 或更高版本的集群进行 AWS IAM 身份验证。如果您的集群符合这些要求,则强烈建议将 AWS IAM 身份验证用于 Lambda 连接。

  • 分配给 Lambda 函数的内存量默认为128 MB。您可以配置分配给 Lambda 函数的内存量,介于128 MB 和10 240MB 之间。确保分配足够的内存。增加内存以增加可用虚拟 CPU 的数量并提高 MongoDB 驱动程序性能。要了解详情,请参阅 内存和计算能力

  • 设置 AWS_STS_REGIONAL_ENDPOINTS AWS_REGION 环境变量。

← 模拟区域中断