从同一vpc中的AWS Lambda调用AWS Lambda

问题描述

我假设我既不是系统专家,也不是网络工程师。 我正在尝试从同一vpc中的另一个lambda函数调用一个lambda函数。我的网络配置是:

  • 1个vpc
  • 1个公共子网和1个私有子网
  • 2个路由表
  • 1个互联网网关
  • 1个安全组

我的lambda:

  • 同时连接到子网和sec组;
  • 连接到数据库并检索数据;
  • 调用lambda函数发送推送通知。

但是当第一个尝试调用第二个aws时,将返回超时异常。 我的想法是,第一个“看不到”,第二个。

我该如何解决问题?

谢谢

解决方法

这实际上是由于第一个Lambda(配置为使用VPC)没有出站互联网连接。

确保您有NAT GatewayNAT instance附加到相关子网的路由表。

如果您的功能需要Internet访问,请使用网络地址转换(NAT)。将功能连接到公共子网不会为其提供Internet访问或公共IP地址。

您将需要删除公共子网的附件,因为不能为Lambda分配公共IP,因此它不能使用Internet网关。

,

如果第一个Lambda函数被异步调用,则可以指定目标,以在执行完成时发送事件。

目标可以是另一个AWS Lambda函数。此调用由AWS服务触发,不需要从第一个Lambda函数访问Internet(因此比使用NAT网关便宜)。

请参阅:Configuring destinations for asynchronous invocation

(我自己还没有尝试过,但是应该有效!)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...