尝试从另一个Lambda调用Lambda函数时,我收到超时错误。
我已经按照我在其他帖子中找到的以下步骤进行了操作,但仍无法使其正常运行。使用此方法,是否只应将公有子网分配给每个Lambda?
两个Lambdas都可以独立运行并可以访问互联网。
我还需要配置什么?
当前配置如下:
创建2个子网,让一个被表示为私有,第二个被公开(这些术语将在前面解释,继续阅读)。 创建Internet网关 - 这是一个将VPC连接到Internet的虚拟路由器。 创建NAT网关 - 选择公共子网并为其创建新的弹性IP(此IP是您的VPC的本地IP) - 此组件将管道与Internet网关的通信。 创建2个路由表 - 一个名为public,另一个名为public。
在公共路由表中,转到路由并添加新路由: 目的地:0.0.0.0/0
目标:互联网网关的ID
在私有路由表中,转到路由并添加新路由: 目的地:0.0.0.0/0
目标:nat-gateway的ID
私有子网是其路由表中的子网 - 没有到Internet网关的路由。
公有子网是其路由表中的子网 - 存在到Internet网关的路由
编辑:两个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)