我正试图使用连接到弹性缓存的Micronaut-2创建一个lambda。
我在项目中使用了redis-lettuce
依赖项,配置如下,并且在弹性缓存配置中启用了对事务的加密。
redis:
uri: redis://{aws master node endpoint}
password: {password}
tls: true
ssl: true
io-thread-pool-size: 5
computation-thread-pool-size: 4
我得到以下异常:
command timed out after 1 minute(s): io.lettuce.core.rediscommandtimeoutexception
io.lettuce.core.rediscommandtimeoutexception: command timed out after 1 minute(s) at
io.lettuce.core.exceptionfactory.createtimeoutexception(exceptionfactory.java:51) at
io.lettuce.core.lettucefutures.awaitorcancel(lettucefutures.java:119) at
io.lettuce.core.futuresyncinvocationhandler.handleinvocation(futuresyncinvocationhandler.java:75)
at io.lettuce.core.internal.abstractinvocationhandler.invoke(abstractinvocationhandler.java:79)
com.sun.proxy.$proxy22.set(unknown source) at
hello.world.function.httpbookredishandler.execute(httpbookredishandler.java:29) at
hello.world.function.httpbookredishandler.execute(httpbookredishandler.java:16) at
io.micronaut.function.aws.micronautrequesthandler.handlerequest(micronautrequesthandler.java:73)
我试过用同样的网络(实际上在同一个lambda上(和同样的弹性缓存设置使用spring-cloud函数,它运行得很好。任何可以帮助我调试这个问题的方向,请。
这可能太晚了。这里首先要提到的是,弹性缓存只能在VPC内访问。如果你想从互联网上访问它,它需要启用NAT GW。