尝试从另一个Lambda调用Lambda函数时,我收到超时错误 .
我已经按照我在另一篇文章中找到的以下步骤进行了操作,但仍无法使其正常工作 . 使用此方法,是否应该只为每个Lambda分配公有子网?
两个Lambdas都可以独立运行并可以访问Internet .
我还需要配置什么?
Current configuration followed:
创建2个子网,让一个被表示为私有,第二个被公开(这些术语将在前面解释,继续阅读) . 创建Internet网关 - 这是一个将VPC连接到Internet的虚拟路由器 . 创建NAT网关 - 选择公共子网并为其创建新的弹性IP(此IP是您的VPC的本地IP) - 此组件将管道与Internet网关的通信 . 创建2个路由表 - 一个名为public,另一个名为public .
在公共路由表中,转到路由并添加新路由:目标:0.0.0.0/0
目标:互联网网关的ID
在专用路由表中,转到路由并添加新路由:目标:0.0.0.0/0
Target:nat网关的ID
私有子网是其路由表中的子网 - 没有到Internet网关的路由 .
公有子网是其路由表中的子网 - 存在到Internet网关的路由
Edit: 这两个Lambdas属于同一个安全组 - 这是正确的吗?我还测试了Lambdas可以在同一个VPC中成功连接到RDS数据库 .
这是我用来调用第二个Lambda的Python:
try:
invoke_response = lambda_client.invoke(
FunctionName='test_function',
InvocationType='Event',
LogType='None',
Payload=json.dumps(test_payload),
)
except Exception as invoke_error:
print(invoke_error)