簡體   English   中英

如何在 AWS Lambda 中訪問 Elasticache 和 Internet?

[英]How to access Elasticache and Internet in AWS Lambda?

我剛剛編寫了一個連接到 AWS ElastiCache 的 python 腳本。 它只是檢查連接。

from redis import Redis

try:
    redis = Redis(host='xxx.cache.amazonaws.com',
                  port=6379,
                  db=0)

    if not redis.ping():
        raise("REDIS can't be initialized")

    return True
except Exception as e:
    print(str(e))
    return False

當以下代碼在我的 EC2 下運行時,它沒有問題並且響應非常快。 然后我使用 AWS Lambda 包裝它並在本地調用該函數。 返回的結果還是正常的。 但是,當 AWS Lambda 部署在雲上時,函數會卡在redis.ping()上,直到函數在 30 秒后超時。

我不確定為什么行為完全不同。

提前致謝。

簡而言之,這就是我所做的

  1. 關注AWS 知識中心視頻:如何為 VPC 中的 Lambda 函數提供 Internet 訪問權限? 並創建了一個可以在 VPC 中訪問 Internet 的 Lambda 函數
  2. 按照修改子網組,確保 Redis 的子網與 Lambda 函數的子網相同

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM