Amazon web services 通过Cloudwatch触发时AWS Lambda超时
我有一个lambda函数,它向外部API发出请求,而外部API需要一个到白名单的静态IP。为了解决这个问题,我创建了一个具有指定弹性IP的VPC 在AWS Lambda控制台上进行测试时,该功能工作正常,但如果使用EventBridge(CloudWatch事件)触发,它总是超时:Amazon web services 通过Cloudwatch触发时AWS Lambda超时,amazon-web-services,aws-lambda,amazon-vpc,Amazon Web Services,Aws Lambda,Amazon Vpc,我有一个lambda函数,它向外部API发出请求,而外部API需要一个到白名单的静态IP。为了解决这个问题,我创建了一个具有指定弹性IP的VPC 在AWS Lambda控制台上进行测试时,该功能工作正常,但如果使用EventBridge(CloudWatch事件)触发,它总是超时: 2020-10-01T11:12:29.219Z 012df4ee-bb1e-4821-b1a2-6c3396ca760b Task timed out after 720.00 seconds 我原以为问题出在
2020-10-01T11:12:29.219Z 012df4ee-bb1e-4821-b1a2-6c3396ca760b Task timed out after 720.00 seconds
我原以为问题出在VPC上,但考虑到手动触发VPC的效果,我认为cloudwatch如何触发该功能可能存在问题
以前是否有人遇到过此问题?无法为AWS Lambda函数分配弹性IP地址 相反:
- 创建弹性IP地址
- 在公用子网中创建NAT网关或NAT实例,并将专用子网配置为使用NAT网关/NAT实例
- 将弹性IP地址与NAT网关/NAT实例关联
- 配置Lambda函数以连接到专用子网
请参阅:您的职能部门是否需要访问任何aws服务?(公共端点)您所说的“具有指定的弹性IP”是什么意思?您对弹性IP地址做了什么?函数是否具有允许事件调用它的正确权限?@TraychoIvanov是的,它需要访问S3,并且我已将端点配置为com.amazonaws.eu-west-2.S3。如前所述,该功能在手动触发时可以工作-因此我不明白为什么它在被cloudwatch触发时不工作?@nmcdonald我认为是这样,因为这在过去是有效的。正在调用该函数,但大部分时间都超时。这就是我的VPC的设置方式,手动触发时该函数工作。CloudWatch日志中显示了什么?你能确定是哪一行代码导致了“挂起”吗?不幸的是,我看不到问题中的代码片段。似乎所有的代码都没有开始运行,因为函数开始时有print语句——它永远不会运行,然后超时。我建议您使用类似的配置创建一个新函数,但只让它输出“print”语句。试着按计划进行。如果这样做有效,那么将代码复制过来,看看是否有效。基本上,“某物”是不同的,这是一个弄清楚它的问题。或者,如果您已经订阅了AWS支持,他们将能够帮助您。Ok将试一试。谢谢你的帮助!