我正在为我们现有的生产系统之一编写一个简单的监视系统。被监视的系统是SMPP网关。基本要求是以给定的频率向SMPP网关发送消息,并通过Web挂钩接收消息。这样可以确保SMPP网关正常运行,否则会触发电子邮件警报。
这是我程序的流程:
我已经在AWS Lambda中实现了该系统,并通过将Lambda函数放置在VPC内来分配了弹性IP。我能够将消息发送到SMPP网关,并且网关正在尝试通过Web挂钩进行响应。但不幸的是,服务器无法通过指定的弹性IP到达Web挂钩侦听器。我四处搜索,发现在AWS Lambda中实现Web挂钩侦听器的一种方法是使用API网关触发器。这是没有用的,因为这不会保证通过SMPP发送消息的同一Lambda实例将接收Web挂钩请求。
所以我的问题是,是否可以在AWS Lambda中运行Web挂钩侦听器并通过附加的弹性IP接收请求?
答案 0 :(得分:1)
否,无法在AWS Lambda中运行Web挂钩侦听器并通过附加的弹性IP接收请求。
VPC中的Lambda函数通过与容器主机关联的ENI,使用连接到NAT网关的弹性IP向Internet发出出站请求。 ENI和EIP都没有唯一地绑定到一个Lambda调用。从技术上讲,Lambda函数允许侦听入站连接...但是它们永远不会通过ENI到达,并且NAT网关还经过专门设计,不允许外部发起的连接返回。因此至少有两个设计的各个层次,会阻止您以这种方式完成尝试。