Не работает клиент Reddison в Java Lambda (используя samLocal и localstack) - PullRequest
0 голосов
/ 03 марта 2020

Я не уверен, из-за чего это не работает. Каждый раз, когда код попадает на инициализацию клиента, он перестает работать Использует ли Redisson нежизнеспособный в настройке Lambda?

Основной код для инициализации клиента redisson:

public boolean itemExistInCache(String item) {
    Config config = new Config();
    config.useSingleServer().setAddress("127.0.0.1:6379");

    // this one is not working
    RedissonClient redissonClient = Redisson.create(config);
}

Настройка

  • Лямбда, содержащая приведенный выше код, запускается каждый раз, когда в SQS регистрируется сообщение. Сообщение SQS подписано на SNS Topi c.

  • Настройка SNS + SQS создается / инициализируется с помощью localstack

  • Лямбда работает с aws sam local (pip3 install --user aws -sam-cli)

То, что я пробовал и работаю до сих пор

  • используя Jedis jedis = new Jedis () // используя тот же редис "localhost: 6379"

1 Ответ

1 голос
/ 29 марта 2020

Если вы намереваетесь запустить этот код в «реальной» лямбде (vs sam-local), вам нужно будет запустить лямбда в VP C, и в этом случае у него не будет внешней сети, пока вы не настроите NAT или подобное в вашем VP C.
Если в sam-local вы используете 127.0.0.1 - вы уверены, что ваша 'lambda', работающая в sam-local, не входит в сетевую группу (например, в docker - если в docker вероятно, что 'localhost' не там, где живет redis)? Этот вопрос / проблема почти наверняка связана с сетевым подключением и отображением портов в sam-local. Вы можете проверить это, попробовав что-то другое, кроме reddison, чтобы попытаться подключиться к конечной точке, чтобы увидеть, подключается ли она вообще - URL.openStream () должен как минимум подключиться достаточно, чтобы выдать ошибку. (redis - это не HTTP, поэтому он не будет работать, но будет зависеть от зависания - зависания почти всегда связаны с изоляцией IP или порта)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...