0

我有一个 Lambda 函数,它连接到外部数据库(运行 MySQL)并在从数据库中获取数据后发送 SNS 电子邮件。

我创建了一个带有 NAT 网关、2 个子网和一个允许所有传入和传出流量的安全组的 VPC。创建 VPC 以附加到我的 Lambda 函数的原因是我需要一个弹性 IP,因为 MySQL 需要授权所有尝试连接的外部 IP。

如果没有 VPC,我的代码可以正常工作,从数据库中获取数据并毫无问题地发送 SNS 电子邮件。但是,在将 VPC 添加到 Lambda 函数时,MySQL 查询都不起作用,SNS 也不会发送任何电子邮件。

我在 CloudWatch Logs 中没有收到任何错误或任何可能导致问题的迹象。有谁知道这可能是什么原因造成的?

4

1 回答 1

2

要使 AWS Lambda 函数能够访问 Internet,需要以下选项之一:

  • 不要选择 VPC。该功能将直接连接到 Internet,但与您的需求相反,您将没有与之关联的弹性 IP 地址。
  • 将 Lambda 函数连接到私有子网并使用NAT 网关连接到 Internet。Lambda 函数似乎来自 NAT 网关的 IP 地址。
  • 将 Lambda 函数连接到公有子网,并将弹性 IP 地址关联到弹性网络接口 (ENI),Lambda 函数在该接口中连接到子网。互联网流量似乎来自弹性 IP 地址。
于 2018-08-23T11:21:06.833 回答