繁体   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