我目前在我的Sails.js項目中使用connect-redis來利用本地安裝的redis實例。將來,我想爲多個服務器實例(負載均衡器後面)使用通用的Redis實例,所以我一直在關注AWS Elasticache。不過,我在配置時遇到了問題。使用AWS Elasticache Redis管理Sails.js中的會話
帆項目\設置\ session.js:
adapter: 'connect-redis',
host: 'primary-endpoint.xxxxxx.ng.0001.apse1.cache.amazonaws.com',
port: 6379,
ttl: <redis session TTL in seconds>,
db: 0,
pass: <redis auth password>,
prefix: 'sess:',
應該採取什麼TTL值是什麼?通過屬性應該以何種方式指向IAM?
我試圖在IAM創建用戶與AmazonElastiCacheFullAccess權限,並把它的訪問密鑰ID在pass
屬性,但我在服務器控制檯得到這個錯誤(在我的Windows盒測試):
C:\repos\sails-project\node_modules\connect-redis\lib\connect-redis.js:83
throw err;
^
AbortError: Redis connection lost and command aborted. It might have been processed.
at RedisClient.flush_and_error (C:\repos\sails-project\node_modules\redis\index.js:362:23)
...
任何想要改變什麼?
我猜TTL是您認爲適合您的應用程序的任何內容,具體取決於您希望會話持續多長時間。 至於IAM的東西。 1)我不認爲IAM用戶會在這裏工作?它要求您提供Elasticache用戶名和密碼,而不是AWS用戶名/密碼。 2)Redis的是默認打開的,所以你不會需要驗證(這並不是說你不應該,但你應該看看Redis的土辦法做到這一點)。 – d1ll1nger
是的,當我在與服務器相同的實例上運行Redis時,我不提供配置中的任何憑據。不過,我認爲指向不同服務器時需要進行身份驗證。據我所知,似乎沒有被任何「Elasticache用戶名,」雖然如此,我對如何拼湊這些疑惑起來(或者如果它甚至有可能)。 – carpiediem
是的,這有點奇怪。我聽到的最後一句是彈性緩存redis服務應該被安全組鎖定,就是這樣。如果您需要進一步控制,那麼在EC2上產生redis。 – d1ll1nger