首页 文章

从AWS Lambda函数连接到ElastiCache集群

提问于
浏览
40

是否可以从AWS Lambda函数连接到Redis ElastiCache集群?

我无法弄清楚这是一个配置问题还是根本不可能 .

PS:我从EC2实例进行了测试,我可以连接到Redis节点 . 此外,Lambda函数和Redis节点位于同一区域 .


UPDATE (09 Oct 2015):

亚马逊宣布推出适用于AWS Lambda功能的VPC . Details here

这意味着我们现在可以访问VPC安全组后面的AWS中的任何资源,包括ElastiCache和RDS计算机 .

UPDATE (11 Feb 2016): 亚马逊为AWS Lambda推出了VPC .

https://aws.amazon.com/about-aws/whats-new/2016/02/access-resources-within-a-vpc-using-aws-lambda/

4 回答

  • 3

    截至2016年2月,AWS允许使用lambda函数连接到Elasticache . 请参阅Access Resources within a VPC using AWS Lambda . 这是一个如何工作的链接 - Tutorial: Configuring a Lambda Function to Access Amazon ElastiCache in an Amazon VPC

  • 16

    由于以下原因,设置HTTP代理或iptables不起作用:

    Redis调用不是 HTTP ,并且不会由HTTP代理处理 . iptables (或任何端口转发)将不会接受域名作为目的地,或者由于每次都需要DNS解析而效率极低 .

    最方便的方法是在EC2机器上安装twemproxy并通过它来路由您的请求 . 作为奖励,您突然也部署了一个梦幻般的分片策略 .

  • 1

    我遇到了同样的问题 . 我没有找到直接的解决方案,而是使用Lambda函数使用socket.io连接到EC2服务器,这非常简单,并向该EC2服务器发出事件 .

    当EC2服务器收到事件时,它执行了必要的Redis任务(生成图像缩略图后的数据库清理) .

    希望这可以帮助!如果有人发现如何直接从Lambda连接到ElastiCache,我仍然很想知道!

  • 0

    我尝试将lambda连接到memcached弹性包,它工作正常 . Redis也应该可行 .

    要牢记几件事:

    • Lambda和Elasticache必须位于同一个VPC中 .

    • 当lambda在VPC中运行时,它赢得了't have access to internet (so access to public APIs won' t工作) . NATGateway是必需的 .

相关问题