【问题标题】:AWS Lambda function that has VPC configuration and uses aws-sdk gives timeout exception具有 VPC 配置并使用 aws-sdk 的 AWS Lambda 函数给出超时异常
【发布时间】:2021-03-07 10:21:35
【问题描述】:

我有一个 AWS Lambda 函数,它使用 VPC 配置(带有公共子网)连接到数据库,该函数还需要使用 AWS SDK 访问 QuickSight。与数据库的连接有效,但是当使用 aws sdk 访问 quicksight 时,它会出现超时异常。据我了解,aws sdk 需要互联网连接(因为它是一个 API)。公共子网不应该允许访问互联网并解决问题还是我错过了什么?

QuickSight 还有一个 VPC 配置,我在其中设置了一个带有入站规则的安全组,以允许从 lambda 函数使用的安全组进行访问(不确定这是否有帮助/是否相关)。

【问题讨论】:

    标签: amazon-web-services networking aws-lambda amazon-vpc amazon-quicksight


    【解决方案1】:

    由于在 VPC 中运行的 AWS Lambda 函数永远不会分配公共 IP 地址,无论您的 VPC 的设置如何,将它们放在公共子网中实际上可以防止 Lambda 函数访问 VPC 之外的任何内容。授予 Lambda 函数访问 VPC 和 Internet 的唯一方法是 run it in a private subnet with a route to a NAT Gateway

    对于某些 AWS 服务,您可以改用 AWS PrivateLink,但 QuickSight 不支持 the list of PrivateLink services(目前),因此这里不提供选项。

    另外,关于您的 QuickSight VPC 设置,据我了解,这仅用于允许 QuickSight 出站连接到您的 VPC 中的资源。当某物与 QuickSight 交互时,它实际上是与 AWS API 交互,而不是 VPC 中的某物,因此您的 QuickSight 安全组中的入站规则毫无意义。

    【讨论】:

    • 这很有道理,谢谢。还有一点想不明白。我读到默认情况下所有服务都在 VPC 中(如果您不配置它)。如果是这样,那么为什么默认情况下(没有 vpc 配置)lambda 可以访问互联网?
    猜你喜欢
    • 2019-11-17
    • 2020-12-15
    • 1970-01-01
    • 2016-05-27
    • 2018-09-29
    • 2017-09-28
    • 1970-01-01
    • 2017-07-22
    相关资源
    最近更新 更多