AWS Lambda中的Web挂钩侦听器

时间:2019-02-18 04:25:17

标签: amazon-web-services aws-lambda aws-api-gateway webhooks

我正在为我们现有的生产系统之一编写一个简单的监视系统。被监视的系统是SMPP网关。基本要求是以给定的频率向SMPP网关发送消息,并通过Web挂钩接收消息。这样可以确保SMPP网关正常运行,否则会触发电子邮件警报。

这是我程序的流程:

  • 连接到SMPP网关
  • 在新线程(服务器)上启动Web挂钩侦听器
  • 发送测试消息
  • 监听传入的Web挂钩并通过事件通知父线程
  • 如果收到消息Web挂钩,请正常退出,否则触发电子邮件警报。

我已经在AWS Lambda中实现了该系统,并通过将Lambda函数放置在VPC内来分配了弹性IP。我能够将消息发送到SMPP网关,并且网关正在尝试通过Web挂钩进行响应。但不幸的是,服务器无法通过指定的弹性IP到达Web挂钩侦听器。我四处搜索,发现在AWS Lambda中实现Web挂钩侦听器的一种方法是使用API​​网关触发器。这是没有用的,因为这不会保证通过SMPP发送消息的同一Lambda实例将接收Web挂钩请求。

所以我的问题是,是否可以在AWS Lambda中运行Web挂钩侦听器并通过附加的弹性IP接收请求?

1 个答案:

答案 0 :(得分:1)

否,无法在AWS Lambda中运行Web挂钩侦听器并通过附加的弹性IP接收请求。

VPC中的Lambda函数通过与容器主机关联的ENI,使用连接到NAT网关的弹性IP向Internet发出出站请求。 ENI和EIP都没有唯一地绑定到一个Lambda调用。从技术上讲,Lambda函数允许侦听入站连接...但是它们永远不会通过ENI到达,并且NAT网关还经过专门设计,不允许外部发起的连接返回。因此至少有两个设计的各个层次,会阻止您以这种方式完成尝试。