我正在尝试编写AWS lambda函数,该函数使用AWS.CognitoIdentityServiceProvider.adminGetUser
从AWS Cognito获取用户,然后将一些数据存储到AWS Elasticache(Redis)中。这些部分可以单独工作,但不能一起工作,因为当我为Lambda启用VPC(能够访问Elasticache)时,我失去了对Cognito的访问(Lambda超时)。
是否可以通过单个lambda函数访问两种服务,或者我的方法是完全错误的?
答案 0 :(得分:0)
是的,您可以确定。您需要在VPC的公共子网中创建NAT网关或NAT实例,然后将规则添加到路由表中,以从lambda的安全组启用NAT。我认为没有公共的Cognito IP地址,因此您的安全出站组规则CIDR为0.0.0.0/0。
更多详细信息可在官方文档here上找到,并且在线上有大量教程,因为这是一个常见问题。祝你好运!
P.S。不要忘记为lambda的IAM角色添加adminGetUser
操作的权限。