【问题标题】:AWS Data Exchange returing timeout error when accessed from lambda function that is within VPC从 VPC 中的 lambda 函数访问 AWS Data Exchange 时返回超时错误
【发布时间】:2020-06-28 06:43:41
【问题描述】:

当 Lambda 附加到一个(或多个)VPC 子网时,对数据交换 api 的后调用会超时。当 Lambda 与所有子网分离时,此 post 调用成功。这在 golang Lambda 环境中始终如一地发生。

在我的用例中,我从 Lambda 访问 Redis,而 Redis 只能从 VPC 内访问。

错误信息: error=RequestError: 发送请求失败 原因:发布https://dataexchange.us-east-1.amazonaws.com/v1/data-sets:拨打tcp 52.85.148.96:443:i/o超时

【问题讨论】:

  • 您的 lambda 在私有子网中?
  • 是的@Marcin lambda 在私有子网中。
  • 这就是为什么它可能无法与 dataexchenge 端点通信的原因。您是否在 VPC 中设置了 NAT 网关?
  • 不,我现在还没有设置 NAT 网关。需要NAT网关吗?

标签: amazon-web-services aws-lambda


【解决方案1】:

在 VPC 中运行的 AWS Lambda 函数永远不会被分配公共 IP 地址。因此,为了让 Lambda 函数访问存在于 VPC 之外的资源,例如 AWS Data Exchange 服务,VPC 需要配置一个 NAT 网关,该网关提供对 Lambda 函数所在的私有子网的 Internet 访问部署到。

【讨论】:

  • 我已经配置了 NAT 网关。仍然有问题。看起来DNS有一些问题。谢谢。
  • @GhulamMustafa 确保 Lambda 的私有子网已配置到 NAT 网关的路由。
  • 配置好了。好像是DNS的问题。当我使用 nslookup dataexchange.us-east-1.amazonaws.com 检查数据交换服务器 IP 时,结果为:Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: Name: dataexchange.us-east-1.amazonaws.com Address: 13.227.185.20 Name: dataexchange.us-east-1.amazonaws.com Address: 13.227.185.86 Name: dataexchange.us-east-1.amazonaws.com Address: 13.227.185.126 Name: dataexchange.us-east-1.amazonaws.com Address: 13.227.185.35 但在 Lambda 错误日志中 IP 为 52.85.148.96 .
猜你喜欢
  • 2019-06-09
  • 2017-02-08
  • 2021-05-14
  • 2020-09-28
  • 2019-09-18
  • 2018-12-25
  • 2020-12-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多