我有一个调用参数存储来检索凭据的 lambda 函数。代码如下:
import boto3
ssm = boto3.client('ssm')
parameter = ssm.get_parameter(Name='credentials', WithDecryption=True)
print(parameter['Parameter']['Value'])
我已将 AmazonSSMFullAccess 授予 lambda 角色。 lambda 有一个 VPC,稍后我将使用它连接到没有公共(public)访问权限的 Redshift 数据库。出入库规则如下:
有一个帖子AWS Lambda cannot connect to Parameter Store其中提到如果 lambda 需要 VPC,则添加一个 NAT 网关。
在 lambda 子网路由表中: , 好像已经有上互联网的路由了?
但我仍然收到 lambda 超时错误 :(
最佳答案
there seems to be already a route that goes to the internet?
遗憾的是,它没有。您似乎将 lambda 放置在具有到互联网网关 (IGW) 路由的公共(public)子网中。但是,您必须使用带有到 NAT 网关的路由的私有(private)子网。 IGW 和 NAT 是两个不同的东西。看看这个 AWS 指南如何让它工作:
或者,您可以设置 VPC interface endpoint for Paramter store .那么您的 Lambda 函数不需要互联网访问权限。
关于amazon-web-services - 调用参数存储时的 lambda 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68569949/