访问 Elasticache - 来自 Lambda 的 memcached



我有一个lambda应用程序,需要使用Memcached引擎访问Elasticache。

我已经正确配置了我的弹性缓存,甚至可以从 Elastic beanstalk 访问它。我也通过 telnet 连接到我的节点进行测试。

要从 Lambda 访问弹性缓存,我做了以下操作:

  1. 配置了我的缓存,并确认了从我的节点连接、设置和获取缓存的项目
  2. 将我的函数设置为在与集群相同的 VPC 上运行
  3. 为我的函数分配了我的缓存(子网组(使用的子网,并且驻留在同一个 VPC 中。
  4. 为我的函数分配了打开端口 11211 的安全组
  5. 我的函数角色附加了以下策略(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.

谢谢

听起来你使用的是错误的Enyim.Caching.MemcachedClient版本。 在撰写本文时,Lambda仅支持.netstandard 1.6而不是1.6.1。

Enyim有一个非常早期的客户端版本,可以工作。 https://www.nuget.org/packages/EnyimMemcachedCore/1.0.0.6

如果启用完整日志记录,您将看到"无法初始化池"附带的异常是"此平台不支持操作"。

我有这个完全相同的问题。

相关内容

  • 没有找到相关文章

最新更新