0
我有一个lambda应用程序需要使用Memcached引擎访问Elasticache。访问Elasticache - 从Lambda的memcached
我已经正确配置了我的弹性缓存,甚至可以从Elastic beanstalk访问它。我通过telnet连接到我的节点进行测试。
从LAMBDA访问elasticache,我也做了以下内容:
- 配置我的缓存,并确定了连接,从我的节点
- 设置我的功能,从相同的运行设置和获取缓存的项目VPC作为我的集群
- 为我的缓存(子网组)使用的子网分配了我的功能,并驻留在同一个VPC中。
- 分配我的函数打开端口11211
- 我的功能作用已连接(AWSLambdaFUllAccess,AWSLambdaBasicExecutionRole和AWSLambdaVPCAccessExecutionRole)以下政策安全组。
还有什么我需要做的吗?
我获取日志中的以下
Error Enyim.Caching.MemcachedClient: Create PooledSocket
Error Enyim.Caching.MemcachedClient: Could not init pool.
Debug Enyim.Caching.MemcachedClient: Mark as dead was requested for
Unspecified/mynodeurl.cache.amazonaws.com:11211
Debug Enyim.Caching.MemcachedClient: FailurePolicy.ShouldFail(): True
Warning Enyim.Caching.MemcachedClient: Marking node
Unspecified/mynodeurl.cache.amazonaws.com:11211 as dead
Debug Enyim.Caching.MemcachedClient: Node
Unspecified/mynodeurl.cache.amazonaws.com:11211 is dead.
Debug Enyim.Caching.MemcachedClient: Starting the recovery timer.
Debug Enyim.Caching.MemcachedClient: Timer started.
Information Enyim.Caching.MemcachedClient: MemcachedInitPool-cost: 43.048ms
Debug Enyim.Caching.MemcachedClient: Acquiring stream from pool.
Unspecified/mynodeurl.cache.amazonaws.com:11211
Debug Enyim.Caching.MemcachedClient: Pool is dead or disposed, returning null
Unspecified/mynodeurl.cache.amazonaws.com:11211
EnyimMemcached Started.
感谢
您对安全组的评论尚不清楚。它听起来像你在Lambda函数的安全组上打开端口11211,这是错误的。您是否在分配给ElastiCache集群的安全组中创建了规则,以便Lambda函数可以访问? –
感谢您的回复@MarkB。你是对的。我为我的lambda函数使用与我的Elasticache节点相同的安全组。我的Lambda安全组应具有哪些设置?它目前只有端口11211和出站的入站规则 - 全部 – Akin
您应该添加一些您使用的示例代码,也许在客户端配置中缺少某些东西。 –