【问题标题】:AWS lambda VPC cannot reach internet with IG attachedAWS lambda VPC 无法在连接了 IG 的情况下访问互联网
【发布时间】:2019-01-07 08:53:54
【问题描述】:

我有一个向互联网发出请求的 AWS lambda 函数。当它使用 NO VPC 发出请求时,没关系,但是当我将它添加到 VPC 时,它停止工作。我已将 Internet 网关连接到 VPC 并创建了一个带有 RT 的 NAT 网关以使用出站 0.0.0.0/0,但它仍然无法正常工作。 随着 15 秒的超时,它总是抛出 TO。

你能帮帮我吗?

我已经关注了这些网站:

一切似乎都配置得很好。


Lambda configuration

Route Table configuration

IGW attached to VPC

【问题讨论】:

  • 您是否按照 AWS 文档中提到的步骤进行操作? - aws.amazon.com/premiumsupport/knowledge-center/…
  • 是的。我已经遵循了每一步。我尝试使用附加了 NAT 的私有子网以及附加了 IGW 的公共子网。
  • 我创建了一个虚拟 lambda 函数来请求 HTTP google.com,没有 VPC,它可以工作。使用 VPC,它不起作用。
  • 您应该能够从 aws lambda 控制台测试中测试您的 Lambda 函数。并验证产生了哪些日志消息。将 Lambda 添加到 VPC 需要 AWSLambdaVPCAccessExecutionRole
  • 同样的问题,AWS 太官僚了 :(

标签: amazon-web-services aws-lambda vpn vpc


【解决方案1】:

可通过三种方式授予对 AWS Lambda 函数的 Internet 访问权限:

  • 不要为其分配 VPC,
  • 将其分配给 VPC 并将弹性 IP 地址附加到在 VPC 中创建的 ENI(弹性网络接口),
  • 将其分配给 VPC 中的私有子网,并使用 NAT 网关授予私有子网对 Internet 的访问权限

【讨论】:

  • 1) 我需要使用 VPC 访问同一子网中的 Redis。 2) VPC 附加了一个 EIP。 3) VPC 连接了 Internet 网关(带有 EIP),Lambad 使用的子网有一个 0.0.0.0/0 出站的 NAT 网关。一切正常,我真的不知道这里发生了什么。
  • VPC 没有 EIP,而是为 VPC 的网络接口分配了 EIP。告诉我更多关于附加了 Lambda 的子网的信息——路由表是如何配置的?另外,带有 NAT 网关的子网的路由表配置是什么? Lambda 函数可以连接到 Redis 吗?如果没有,Redis 安全组的配置是什么? (随时编辑您的问题并添加详细信息。)
  • 我创建了一个虚拟 lambda 函数来请求 HTTP google.com,没有 VPC,它可以工作。使用 VPC,它不起作用。
  • @Nahuel 你需要一个 NAT 网关。
  • 我有一个 NAT 网关。请检查我发布的图片
【解决方案2】:

如果您已经验证了 VPC 设置、子网、路由表、IG/NAG 网关等网络配置。并将 Lambda 与当前子网和安全组相关联。

那么最后要验证的是:

要使 Lambda 函数在自定义或用户定义的 VPC 中发挥作用,除了 AWSLambdaBasicExecutionRole 之外,将 Lambda 添加到 VPC 还需要 AWSLambdaVPCAccessExecutionRole。

确保关联的角色具有以上权限。

来源: https://docs.aws.amazon.com/lambda/latest/dg/vpc-rds-create-iam-role.html

【讨论】:

    猜你喜欢
    • 2019-12-06
    • 1970-01-01
    • 2020-01-04
    • 2016-08-03
    • 2016-09-05
    • 2015-05-24
    • 2020-05-04
    • 2020-05-24
    • 2017-07-20
    相关资源
    最近更新 更多