2

我使用無服務器來創建使用nodejs模板的lambda函數。在本地測試Elasticache和無服務器AWS Lambda

  1. 連接到我的Elasticache的Redis我設置一個VPC,並添加了安全組和子網號,以及該地區的我拉姆達serverless.yml
  2. 我部署了它並確認我可以設置並從Redis獲得密鑰。

當我嘗試serverless invoke local -f functionName時,它總是超時,所以我必須部署它來測試它。

是否可以在本地使用serverless進行測試?

回答

3

默認情況下,Elasticache無法直接從外部AWS環境訪問。根據他們的documentation,該服務旨在專門從AWS內部訪問。在你的情況下,serverless invoke local超時,因爲連接本身無法建立,並且lambda函數超時。因此,您無法在本地運行調用以按照您嘗試執行的方式來測試此連接。

要從本地計算機連接到Elasticache Redis,可以在公有子網中使用NAT實例,並設置安全組以打開正確的端口並啓用IP轉發以允許連接到您的redis緩存羣集。步驟給出here

不過,我只想安裝Redis的本地和使用環境變量來改變連接字符串的λ運行時,連接到本地機器上的實際Elasticache羣集上本地Redis的。