AWS Lambda在VPC中运行以发布到SNS

时间:2018-02-20 03:30:48

标签: amazon-web-services aws-lambda amazon-sns

我在VPC中运行Lambda,它访问安全资源(例如:RDS),但我还需要它来发布SNS通知。有没有办法在没有NAT网关的情况下做到这一点?

或者,我想写一个DynamoDB表,触发另一个lambda,但想知道是否有更简单的方法。

2 个答案:

答案 0 :(得分:0)

简单的答案是否定的。 SNS目前不能作为VPC端点使用,因此您需要继续执行您已经在做的事情,以便通过lambda(私有子网中的NAT网关)到达RDS。

换句话说,2016年的答案今天仍然有用 - > How to let AWS lambda in a VPC to publish SNS notification?

答案 1 :(得分:-1)

选项A:使用NAT网关 您的lambda位于私有子网中,这意味着它无法与外部世界(互联网)进行通信,因此除非您将其设为公共子网(当然不建议这样做),否则您无法访问外部世界。 NAT网关允许您的资源通过它进行访问,实际上并不难。 这是一个方便的教程,如何做到这一点: https://github.com/naguibihab/aws-goodies/blob/master/how-to-setup-lambda-to-talk-to-internet-and-vpc.md

选项B:使用NAT实例与使用NAT网关类似,您也可以使用NAT instance,这需要更多的管理,可能具有更少的可用性,但它也可以便宜。 NAT实例的工作方式与NAT网关相同,它需要位于公有子网中,私有子网中的任何lambda功能都可以通过它访问Internet。

对于您的DynamoDB替代方案,您可以为Khalid T建议创建Dynamo db的VPC端点:https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints-ddb.html

修改 我已经纠正,编辑了我的答案。